TrueNorth TimeWarp Benchmark
Data Structures | Macros | Typedefs | Functions | Variables
sqlite3.c File Reference
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <stddef.h>
#include <time.h>
#include <pthread.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/time.h>
#include <errno.h>
#include <sys/mman.h>
#include <dlfcn.h>
Include dependency graph for sqlite3.c:

Go to the source code of this file.

Data Structures

struct  sqlite3_file
 
struct  sqlite3_io_methods
 
struct  sqlite3_vfs
 
struct  sqlite3_mem_methods
 
struct  sqlite3_module
 
struct  sqlite3_index_info
 
struct  sqlite3_index_info::sqlite3_index_constraint
 
struct  sqlite3_index_info::sqlite3_index_orderby
 
struct  sqlite3_index_info::sqlite3_index_constraint_usage
 
struct  sqlite3_vtab
 
struct  sqlite3_vtab_cursor
 
struct  sqlite3_mutex_methods
 
struct  sqlite3_pcache_page
 
struct  sqlite3_pcache_methods2
 
struct  sqlite3_pcache_methods
 
struct  sqlite3_rtree_geometry
 
struct  sqlite3_rtree_query_info
 
struct  Hash
 
struct  Hash::_ht
 
struct  HashElem
 
struct  BusyHandler
 
struct  Op
 
struct  SubProgram
 
struct  VdbeOpList
 
struct  PgHdr
 
struct  Db
 
struct  Schema
 
struct  Lookaside
 
struct  LookasideSlot
 
struct  FuncDefHash
 
struct  sqlite3
 
struct  sqlite3::sqlite3InitInfo
 
struct  FuncDef
 
struct  FuncDestructor
 
struct  Savepoint
 
struct  Module
 
struct  Column
 
struct  CollSeq
 
struct  VTable
 
struct  Table
 
struct  FKey
 
struct  FKey::sColMap
 
struct  KeyInfo
 
struct  UnpackedRecord
 
struct  Index
 
struct  IndexSample
 
struct  Token
 
struct  AggInfo
 
struct  AggInfo::AggInfo_col
 
struct  AggInfo::AggInfo_func
 
struct  Expr
 
struct  ExprList
 
struct  ExprList::ExprList_item
 
struct  ExprSpan
 
struct  IdList
 
struct  IdList::IdList_item
 
struct  SrcList
 
struct  SrcList::SrcList_item
 
struct  NameContext
 
struct  Select
 
struct  SelectDest
 
struct  AutoincInfo
 
struct  TriggerPrg
 
struct  Parse
 
struct  Parse::yColCache
 
struct  AuthContext
 
struct  Trigger
 
struct  TriggerStep
 
struct  DbFixer
 
struct  StrAccum
 
struct  InitData
 
struct  Sqlite3Config
 
struct  Walker
 
struct  With
 
struct  With::Cte
 
struct  PrintfArguments
 
struct  VdbeCursor
 
struct  VdbeFrame
 
struct  sqlite3_value
 
union  sqlite3_value::MemValue
 
struct  AuxData
 
struct  sqlite3_context
 
struct  Explain
 
struct  ScanStatus
 
struct  Vdbe
 
struct  sqlite3StatType
 
struct  DateTime
 
struct  BenignMallocHooks
 
struct  sqlite3_mutex
 
struct  ScratchFreeslot
 
struct  Mem0Global
 
struct  et_info
 
struct  sqlite3PrngType
 
struct  SQLiteThread
 
struct  UnixUnusedFd
 
struct  unixFile
 
struct  unix_syscall
 
struct  vxworksFileId
 
struct  unixFileId
 
struct  unixInodeInfo
 
struct  unixShmNode
 
struct  unixShm
 
struct  Bitvec
 
struct  PCache
 
struct  PGroup
 
struct  PCache1
 
struct  PgHdr1
 
struct  PgFreeslot
 
struct  PCacheGlobal
 
struct  RowSetEntry
 
struct  RowSetChunk
 
struct  RowSet
 
struct  PagerSavepoint
 
struct  Pager
 
struct  WalIndexHdr
 
struct  WalCkptInfo
 
struct  Wal
 
struct  WalIterator
 
struct  WalIterator::WalSegment
 
struct  WalWriter
 
struct  MemPage
 
struct  BtLock
 
struct  Btree
 
struct  BtShared
 
struct  CellInfo
 
struct  BtCursor
 
struct  IntegrityCk
 
struct  sqlite3_backup
 
struct  ValueNewStat4Ctx
 
struct  Incrblob
 
struct  SorterFile
 
struct  SorterList
 
struct  MergeEngine
 
struct  SortSubtask
 
struct  VdbeSorter
 
struct  PmaReader
 
struct  IncrMerger
 
struct  PmaWriter
 
struct  SorterRecord
 
struct  FileChunk
 
struct  FilePoint
 
struct  MemJournal
 
struct  SrcCount
 
struct  Stat4Sample
 
struct  Stat4Accum
 
struct  analysisInfo
 
struct  TableLock
 
struct  compareInfo
 
struct  SumCtx
 
struct  CountCtx
 
struct  sqlite3_api_routines
 
struct  sqlite3AutoExtList
 
struct  sPragmaNames
 
struct  DistinctCtx
 
struct  SortCtx
 
struct  TabResult
 
struct  VtabCtx
 
struct  WhereLevel
 
struct  WhereLoop
 
struct  WhereOrCost
 
struct  WhereOrSet
 
struct  WherePath
 
struct  WhereTerm
 
struct  WhereScan
 
struct  WhereClause
 
struct  WhereOrInfo
 
struct  WhereAndInfo
 
struct  WhereMaskSet
 
struct  WhereLoopBuilder
 
struct  WhereInfo
 
struct  LimitVal
 
struct  LikeOp
 
struct  TrigEvent
 
struct  AttachKey
 
union  YYMINORTYPE
 
struct  yyStackEntry
 
struct  yyParser
 

Macros

#define SQLITE_CORE   1
 
#define SQLITE_AMALGAMATION   1
 
#define SQLITE_PRIVATE   static
 
#define _SQLITEINT_H_
 
#define _MSVC_H_
 
#define OS_VXWORKS   0
 
#define _LARGE_FILE   1
 
#define _FILE_OFFSET_BITS   64
 
#define _LARGEFILE_SOURCE   1
 
#define _SQLITE3_H_
 
#define SQLITE_EXTERN   extern
 
#define SQLITE_API
 
#define SQLITE_CDECL
 
#define SQLITE_STDCALL
 
#define SQLITE_DEPRECATED
 
#define SQLITE_EXPERIMENTAL
 
#define SQLITE_VERSION   "3.8.10"
 
#define SQLITE_VERSION_NUMBER   3008010
 
#define SQLITE_SOURCE_ID   "2015-04-23 13:37:05 b5e43602833249aa4b73337bf85b7f308450dab6"
 
#define SQLITE_OK   0 /* Successful result */
 
#define SQLITE_ERROR   1 /* SQL error or missing database */
 
#define SQLITE_INTERNAL   2 /* Internal logic error in SQLite */
 
#define SQLITE_PERM   3 /* Access permission denied */
 
#define SQLITE_ABORT   4 /* Callback routine requested an abort */
 
#define SQLITE_BUSY   5 /* The database file is locked */
 
#define SQLITE_LOCKED   6 /* A table in the database is locked */
 
#define SQLITE_NOMEM   7 /* A malloc() failed */
 
#define SQLITE_READONLY   8 /* Attempt to write a readonly database */
 
#define SQLITE_INTERRUPT   9 /* Operation terminated by sqlite3_interrupt()*/
 
#define SQLITE_IOERR   10 /* Some kind of disk I/O error occurred */
 
#define SQLITE_CORRUPT   11 /* The database disk image is malformed */
 
#define SQLITE_NOTFOUND   12 /* Unknown opcode in sqlite3_file_control() */
 
#define SQLITE_FULL   13 /* Insertion failed because database is full */
 
#define SQLITE_CANTOPEN   14 /* Unable to open the database file */
 
#define SQLITE_PROTOCOL   15 /* Database lock protocol error */
 
#define SQLITE_EMPTY   16 /* Database is empty */
 
#define SQLITE_SCHEMA   17 /* The database schema changed */
 
#define SQLITE_TOOBIG   18 /* String or BLOB exceeds size limit */
 
#define SQLITE_CONSTRAINT   19 /* Abort due to constraint violation */
 
#define SQLITE_MISMATCH   20 /* Data type mismatch */
 
#define SQLITE_MISUSE   21 /* Library used incorrectly */
 
#define SQLITE_NOLFS   22 /* Uses OS features not supported on host */
 
#define SQLITE_AUTH   23 /* Authorization denied */
 
#define SQLITE_FORMAT   24 /* Auxiliary database format error */
 
#define SQLITE_RANGE   25 /* 2nd parameter to sqlite3_bind out of range */
 
#define SQLITE_NOTADB   26 /* File opened that is not a database file */
 
#define SQLITE_NOTICE   27 /* Notifications from sqlite3_log() */
 
#define SQLITE_WARNING   28 /* Warnings from sqlite3_log() */
 
#define SQLITE_ROW   100 /* sqlite3_step() has another row ready */
 
#define SQLITE_DONE   101 /* sqlite3_step() has finished executing */
 
#define SQLITE_IOERR_READ   (SQLITE_IOERR | (1<<8))
 
#define SQLITE_IOERR_SHORT_READ   (SQLITE_IOERR | (2<<8))
 
#define SQLITE_IOERR_WRITE   (SQLITE_IOERR | (3<<8))
 
#define SQLITE_IOERR_FSYNC   (SQLITE_IOERR | (4<<8))
 
#define SQLITE_IOERR_DIR_FSYNC   (SQLITE_IOERR | (5<<8))
 
#define SQLITE_IOERR_TRUNCATE   (SQLITE_IOERR | (6<<8))
 
#define SQLITE_IOERR_FSTAT   (SQLITE_IOERR | (7<<8))
 
#define SQLITE_IOERR_UNLOCK   (SQLITE_IOERR | (8<<8))
 
#define SQLITE_IOERR_RDLOCK   (SQLITE_IOERR | (9<<8))
 
#define SQLITE_IOERR_DELETE   (SQLITE_IOERR | (10<<8))
 
#define SQLITE_IOERR_BLOCKED   (SQLITE_IOERR | (11<<8))
 
#define SQLITE_IOERR_NOMEM   (SQLITE_IOERR | (12<<8))
 
#define SQLITE_IOERR_ACCESS   (SQLITE_IOERR | (13<<8))
 
#define SQLITE_IOERR_CHECKRESERVEDLOCK   (SQLITE_IOERR | (14<<8))
 
#define SQLITE_IOERR_LOCK   (SQLITE_IOERR | (15<<8))
 
#define SQLITE_IOERR_CLOSE   (SQLITE_IOERR | (16<<8))
 
#define SQLITE_IOERR_DIR_CLOSE   (SQLITE_IOERR | (17<<8))
 
#define SQLITE_IOERR_SHMOPEN   (SQLITE_IOERR | (18<<8))
 
#define SQLITE_IOERR_SHMSIZE   (SQLITE_IOERR | (19<<8))
 
#define SQLITE_IOERR_SHMLOCK   (SQLITE_IOERR | (20<<8))
 
#define SQLITE_IOERR_SHMMAP   (SQLITE_IOERR | (21<<8))
 
#define SQLITE_IOERR_SEEK   (SQLITE_IOERR | (22<<8))
 
#define SQLITE_IOERR_DELETE_NOENT   (SQLITE_IOERR | (23<<8))
 
#define SQLITE_IOERR_MMAP   (SQLITE_IOERR | (24<<8))
 
#define SQLITE_IOERR_GETTEMPPATH   (SQLITE_IOERR | (25<<8))
 
#define SQLITE_IOERR_CONVPATH   (SQLITE_IOERR | (26<<8))
 
#define SQLITE_LOCKED_SHAREDCACHE   (SQLITE_LOCKED | (1<<8))
 
#define SQLITE_BUSY_RECOVERY   (SQLITE_BUSY | (1<<8))
 
#define SQLITE_BUSY_SNAPSHOT   (SQLITE_BUSY | (2<<8))
 
#define SQLITE_CANTOPEN_NOTEMPDIR   (SQLITE_CANTOPEN | (1<<8))
 
#define SQLITE_CANTOPEN_ISDIR   (SQLITE_CANTOPEN | (2<<8))
 
#define SQLITE_CANTOPEN_FULLPATH   (SQLITE_CANTOPEN | (3<<8))
 
#define SQLITE_CANTOPEN_CONVPATH   (SQLITE_CANTOPEN | (4<<8))
 
#define SQLITE_CORRUPT_VTAB   (SQLITE_CORRUPT | (1<<8))
 
#define SQLITE_READONLY_RECOVERY   (SQLITE_READONLY | (1<<8))
 
#define SQLITE_READONLY_CANTLOCK   (SQLITE_READONLY | (2<<8))
 
#define SQLITE_READONLY_ROLLBACK   (SQLITE_READONLY | (3<<8))
 
#define SQLITE_READONLY_DBMOVED   (SQLITE_READONLY | (4<<8))
 
#define SQLITE_ABORT_ROLLBACK   (SQLITE_ABORT | (2<<8))
 
#define SQLITE_CONSTRAINT_CHECK   (SQLITE_CONSTRAINT | (1<<8))
 
#define SQLITE_CONSTRAINT_COMMITHOOK   (SQLITE_CONSTRAINT | (2<<8))
 
#define SQLITE_CONSTRAINT_FOREIGNKEY   (SQLITE_CONSTRAINT | (3<<8))
 
#define SQLITE_CONSTRAINT_FUNCTION   (SQLITE_CONSTRAINT | (4<<8))
 
#define SQLITE_CONSTRAINT_NOTNULL   (SQLITE_CONSTRAINT | (5<<8))
 
#define SQLITE_CONSTRAINT_PRIMARYKEY   (SQLITE_CONSTRAINT | (6<<8))
 
#define SQLITE_CONSTRAINT_TRIGGER   (SQLITE_CONSTRAINT | (7<<8))
 
#define SQLITE_CONSTRAINT_UNIQUE   (SQLITE_CONSTRAINT | (8<<8))
 
#define SQLITE_CONSTRAINT_VTAB   (SQLITE_CONSTRAINT | (9<<8))
 
#define SQLITE_CONSTRAINT_ROWID   (SQLITE_CONSTRAINT |(10<<8))
 
#define SQLITE_NOTICE_RECOVER_WAL   (SQLITE_NOTICE | (1<<8))
 
#define SQLITE_NOTICE_RECOVER_ROLLBACK   (SQLITE_NOTICE | (2<<8))
 
#define SQLITE_WARNING_AUTOINDEX   (SQLITE_WARNING | (1<<8))
 
#define SQLITE_AUTH_USER   (SQLITE_AUTH | (1<<8))
 
#define SQLITE_OPEN_READONLY   0x00000001 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_READWRITE   0x00000002 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_CREATE   0x00000004 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_DELETEONCLOSE   0x00000008 /* VFS only */
 
#define SQLITE_OPEN_EXCLUSIVE   0x00000010 /* VFS only */
 
#define SQLITE_OPEN_AUTOPROXY   0x00000020 /* VFS only */
 
#define SQLITE_OPEN_URI   0x00000040 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_MEMORY   0x00000080 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_MAIN_DB   0x00000100 /* VFS only */
 
#define SQLITE_OPEN_TEMP_DB   0x00000200 /* VFS only */
 
#define SQLITE_OPEN_TRANSIENT_DB   0x00000400 /* VFS only */
 
#define SQLITE_OPEN_MAIN_JOURNAL   0x00000800 /* VFS only */
 
#define SQLITE_OPEN_TEMP_JOURNAL   0x00001000 /* VFS only */
 
#define SQLITE_OPEN_SUBJOURNAL   0x00002000 /* VFS only */
 
#define SQLITE_OPEN_MASTER_JOURNAL   0x00004000 /* VFS only */
 
#define SQLITE_OPEN_NOMUTEX   0x00008000 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_FULLMUTEX   0x00010000 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_SHAREDCACHE   0x00020000 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_PRIVATECACHE   0x00040000 /* Ok for sqlite3_open_v2() */
 
#define SQLITE_OPEN_WAL   0x00080000 /* VFS only */
 
#define SQLITE_IOCAP_ATOMIC   0x00000001
 
#define SQLITE_IOCAP_ATOMIC512   0x00000002
 
#define SQLITE_IOCAP_ATOMIC1K   0x00000004
 
#define SQLITE_IOCAP_ATOMIC2K   0x00000008
 
#define SQLITE_IOCAP_ATOMIC4K   0x00000010
 
#define SQLITE_IOCAP_ATOMIC8K   0x00000020
 
#define SQLITE_IOCAP_ATOMIC16K   0x00000040
 
#define SQLITE_IOCAP_ATOMIC32K   0x00000080
 
#define SQLITE_IOCAP_ATOMIC64K   0x00000100
 
#define SQLITE_IOCAP_SAFE_APPEND   0x00000200
 
#define SQLITE_IOCAP_SEQUENTIAL   0x00000400
 
#define SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN   0x00000800
 
#define SQLITE_IOCAP_POWERSAFE_OVERWRITE   0x00001000
 
#define SQLITE_IOCAP_IMMUTABLE   0x00002000
 
#define SQLITE_LOCK_NONE   0
 
#define SQLITE_LOCK_SHARED   1
 
#define SQLITE_LOCK_RESERVED   2
 
#define SQLITE_LOCK_PENDING   3
 
#define SQLITE_LOCK_EXCLUSIVE   4
 
#define SQLITE_SYNC_NORMAL   0x00002
 
#define SQLITE_SYNC_FULL   0x00003
 
#define SQLITE_SYNC_DATAONLY   0x00010
 
#define SQLITE_FCNTL_LOCKSTATE   1
 
#define SQLITE_FCNTL_GET_LOCKPROXYFILE   2
 
#define SQLITE_FCNTL_SET_LOCKPROXYFILE   3
 
#define SQLITE_FCNTL_LAST_ERRNO   4
 
#define SQLITE_FCNTL_SIZE_HINT   5
 
#define SQLITE_FCNTL_CHUNK_SIZE   6
 
#define SQLITE_FCNTL_FILE_POINTER   7
 
#define SQLITE_FCNTL_SYNC_OMITTED   8
 
#define SQLITE_FCNTL_WIN32_AV_RETRY   9
 
#define SQLITE_FCNTL_PERSIST_WAL   10
 
#define SQLITE_FCNTL_OVERWRITE   11
 
#define SQLITE_FCNTL_VFSNAME   12
 
#define SQLITE_FCNTL_POWERSAFE_OVERWRITE   13
 
#define SQLITE_FCNTL_PRAGMA   14
 
#define SQLITE_FCNTL_BUSYHANDLER   15
 
#define SQLITE_FCNTL_TEMPFILENAME   16
 
#define SQLITE_FCNTL_MMAP_SIZE   18
 
#define SQLITE_FCNTL_TRACE   19
 
#define SQLITE_FCNTL_HAS_MOVED   20
 
#define SQLITE_FCNTL_SYNC   21
 
#define SQLITE_FCNTL_COMMIT_PHASETWO   22
 
#define SQLITE_FCNTL_WIN32_SET_HANDLE   23
 
#define SQLITE_FCNTL_WAL_BLOCK   24
 
#define SQLITE_GET_LOCKPROXYFILE   SQLITE_FCNTL_GET_LOCKPROXYFILE
 
#define SQLITE_SET_LOCKPROXYFILE   SQLITE_FCNTL_SET_LOCKPROXYFILE
 
#define SQLITE_LAST_ERRNO   SQLITE_FCNTL_LAST_ERRNO
 
#define SQLITE_ACCESS_EXISTS   0
 
#define SQLITE_ACCESS_READWRITE   1 /* Used by PRAGMA temp_store_directory */
 
#define SQLITE_ACCESS_READ   2 /* Unused */
 
#define SQLITE_SHM_UNLOCK   1
 
#define SQLITE_SHM_LOCK   2
 
#define SQLITE_SHM_SHARED   4
 
#define SQLITE_SHM_EXCLUSIVE   8
 
#define SQLITE_SHM_NLOCK   8
 
#define SQLITE_CONFIG_SINGLETHREAD   1 /* nil */
 
#define SQLITE_CONFIG_MULTITHREAD   2 /* nil */
 
#define SQLITE_CONFIG_SERIALIZED   3 /* nil */
 
#define SQLITE_CONFIG_MALLOC   4 /* sqlite3_mem_methods* */
 
#define SQLITE_CONFIG_GETMALLOC   5 /* sqlite3_mem_methods* */
 
#define SQLITE_CONFIG_SCRATCH   6 /* void*, int sz, int N */
 
#define SQLITE_CONFIG_PAGECACHE   7 /* void*, int sz, int N */
 
#define SQLITE_CONFIG_HEAP   8 /* void*, int nByte, int min */
 
#define SQLITE_CONFIG_MEMSTATUS   9 /* boolean */
 
#define SQLITE_CONFIG_MUTEX   10 /* sqlite3_mutex_methods* */
 
#define SQLITE_CONFIG_GETMUTEX   11 /* sqlite3_mutex_methods* */
 
#define SQLITE_CONFIG_LOOKASIDE   13 /* int int */
 
#define SQLITE_CONFIG_PCACHE   14 /* no-op */
 
#define SQLITE_CONFIG_GETPCACHE   15 /* no-op */
 
#define SQLITE_CONFIG_LOG   16 /* xFunc, void* */
 
#define SQLITE_CONFIG_URI   17 /* int */
 
#define SQLITE_CONFIG_PCACHE2   18 /* sqlite3_pcache_methods2* */
 
#define SQLITE_CONFIG_GETPCACHE2   19 /* sqlite3_pcache_methods2* */
 
#define SQLITE_CONFIG_COVERING_INDEX_SCAN   20 /* int */
 
#define SQLITE_CONFIG_SQLLOG   21 /* xSqllog, void* */
 
#define SQLITE_CONFIG_MMAP_SIZE   22 /* sqlite3_int64, sqlite3_int64 */
 
#define SQLITE_CONFIG_WIN32_HEAPSIZE   23 /* int nByte */
 
#define SQLITE_CONFIG_PCACHE_HDRSZ   24 /* int *psz */
 
#define SQLITE_CONFIG_PMASZ   25 /* unsigned int szPma */
 
#define SQLITE_DBCONFIG_LOOKASIDE   1001 /* void* int int */
 
#define SQLITE_DBCONFIG_ENABLE_FKEY   1002 /* int int* */
 
#define SQLITE_DBCONFIG_ENABLE_TRIGGER   1003 /* int int* */
 
#define SQLITE_DENY   1 /* Abort the SQL statement with an error */
 
#define SQLITE_IGNORE   2 /* Don't allow access, but don't generate an error */
 
#define SQLITE_CREATE_INDEX   1 /* Index Name Table Name */
 
#define SQLITE_CREATE_TABLE   2 /* Table Name NULL */
 
#define SQLITE_CREATE_TEMP_INDEX   3 /* Index Name Table Name */
 
#define SQLITE_CREATE_TEMP_TABLE   4 /* Table Name NULL */
 
#define SQLITE_CREATE_TEMP_TRIGGER   5 /* Trigger Name Table Name */
 
#define SQLITE_CREATE_TEMP_VIEW   6 /* View Name NULL */
 
#define SQLITE_CREATE_TRIGGER   7 /* Trigger Name Table Name */
 
#define SQLITE_CREATE_VIEW   8 /* View Name NULL */
 
#define SQLITE_DELETE   9 /* Table Name NULL */
 
#define SQLITE_DROP_INDEX   10 /* Index Name Table Name */
 
#define SQLITE_DROP_TABLE   11 /* Table Name NULL */
 
#define SQLITE_DROP_TEMP_INDEX   12 /* Index Name Table Name */
 
#define SQLITE_DROP_TEMP_TABLE   13 /* Table Name NULL */
 
#define SQLITE_DROP_TEMP_TRIGGER   14 /* Trigger Name Table Name */
 
#define SQLITE_DROP_TEMP_VIEW   15 /* View Name NULL */
 
#define SQLITE_DROP_TRIGGER   16 /* Trigger Name Table Name */
 
#define SQLITE_DROP_VIEW   17 /* View Name NULL */
 
#define SQLITE_INSERT   18 /* Table Name NULL */
 
#define SQLITE_PRAGMA   19 /* Pragma Name 1st arg or NULL */
 
#define SQLITE_READ   20 /* Table Name Column Name */
 
#define SQLITE_SELECT   21 /* NULL NULL */
 
#define SQLITE_TRANSACTION   22 /* Operation NULL */
 
#define SQLITE_UPDATE   23 /* Table Name Column Name */
 
#define SQLITE_ATTACH   24 /* Filename NULL */
 
#define SQLITE_DETACH   25 /* Database Name NULL */
 
#define SQLITE_ALTER_TABLE   26 /* Database Name Table Name */
 
#define SQLITE_REINDEX   27 /* Index Name NULL */
 
#define SQLITE_ANALYZE   28 /* Table Name NULL */
 
#define SQLITE_CREATE_VTABLE   29 /* Table Name Module Name */
 
#define SQLITE_DROP_VTABLE   30 /* Table Name Module Name */
 
#define SQLITE_FUNCTION   31 /* NULL Function Name */
 
#define SQLITE_SAVEPOINT   32 /* Operation Savepoint Name */
 
#define SQLITE_COPY   0 /* No longer used */
 
#define SQLITE_RECURSIVE   33 /* NULL NULL */
 
#define SQLITE_LIMIT_LENGTH   0
 
#define SQLITE_LIMIT_SQL_LENGTH   1
 
#define SQLITE_LIMIT_COLUMN   2
 
#define SQLITE_LIMIT_EXPR_DEPTH   3
 
#define SQLITE_LIMIT_COMPOUND_SELECT   4
 
#define SQLITE_LIMIT_VDBE_OP   5
 
#define SQLITE_LIMIT_FUNCTION_ARG   6
 
#define SQLITE_LIMIT_ATTACHED   7
 
#define SQLITE_LIMIT_LIKE_PATTERN_LENGTH   8
 
#define SQLITE_LIMIT_VARIABLE_NUMBER   9
 
#define SQLITE_LIMIT_TRIGGER_DEPTH   10
 
#define SQLITE_LIMIT_WORKER_THREADS   11
 
#define SQLITE_INTEGER   1
 
#define SQLITE_FLOAT   2
 
#define SQLITE_BLOB   4
 
#define SQLITE_NULL   5
 
#define SQLITE_TEXT   3
 
#define SQLITE3_TEXT   3
 
#define SQLITE_UTF8   1 /* IMP: R-37514-35566 */
 
#define SQLITE_UTF16LE   2 /* IMP: R-03371-37637 */
 
#define SQLITE_UTF16BE   3 /* IMP: R-51971-34154 */
 
#define SQLITE_UTF16   4 /* Use native byte order */
 
#define SQLITE_ANY   5 /* Deprecated */
 
#define SQLITE_UTF16_ALIGNED   8 /* sqlite3_create_collation only */
 
#define SQLITE_DETERMINISTIC   0x800
 
#define SQLITE_STATIC   ((sqlite3_destructor_type)0)
 
#define SQLITE_TRANSIENT   ((sqlite3_destructor_type)-1)
 
#define SQLITE_INDEX_CONSTRAINT_EQ   2
 
#define SQLITE_INDEX_CONSTRAINT_GT   4
 
#define SQLITE_INDEX_CONSTRAINT_LE   8
 
#define SQLITE_INDEX_CONSTRAINT_LT   16
 
#define SQLITE_INDEX_CONSTRAINT_GE   32
 
#define SQLITE_INDEX_CONSTRAINT_MATCH   64
 
#define SQLITE_MUTEX_FAST   0
 
#define SQLITE_MUTEX_RECURSIVE   1
 
#define SQLITE_MUTEX_STATIC_MASTER   2
 
#define SQLITE_MUTEX_STATIC_MEM   3 /* sqlite3_malloc() */
 
#define SQLITE_MUTEX_STATIC_MEM2   4 /* NOT USED */
 
#define SQLITE_MUTEX_STATIC_OPEN   4 /* sqlite3BtreeOpen() */
 
#define SQLITE_MUTEX_STATIC_PRNG   5 /* sqlite3_random() */
 
#define SQLITE_MUTEX_STATIC_LRU   6 /* lru page list */
 
#define SQLITE_MUTEX_STATIC_LRU2   7 /* NOT USED */
 
#define SQLITE_MUTEX_STATIC_PMEM   7 /* sqlite3PageMalloc() */
 
#define SQLITE_MUTEX_STATIC_APP1   8 /* For use by application */
 
#define SQLITE_MUTEX_STATIC_APP2   9 /* For use by application */
 
#define SQLITE_MUTEX_STATIC_APP3   10 /* For use by application */
 
#define SQLITE_TESTCTRL_FIRST   5
 
#define SQLITE_TESTCTRL_PRNG_SAVE   5
 
#define SQLITE_TESTCTRL_PRNG_RESTORE   6
 
#define SQLITE_TESTCTRL_PRNG_RESET   7
 
#define SQLITE_TESTCTRL_BITVEC_TEST   8
 
#define SQLITE_TESTCTRL_FAULT_INSTALL   9
 
#define SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS   10
 
#define SQLITE_TESTCTRL_PENDING_BYTE   11
 
#define SQLITE_TESTCTRL_ASSERT   12
 
#define SQLITE_TESTCTRL_ALWAYS   13
 
#define SQLITE_TESTCTRL_RESERVE   14
 
#define SQLITE_TESTCTRL_OPTIMIZATIONS   15
 
#define SQLITE_TESTCTRL_ISKEYWORD   16
 
#define SQLITE_TESTCTRL_SCRATCHMALLOC   17
 
#define SQLITE_TESTCTRL_LOCALTIME_FAULT   18
 
#define SQLITE_TESTCTRL_EXPLAIN_STMT   19 /* NOT USED */
 
#define SQLITE_TESTCTRL_NEVER_CORRUPT   20
 
#define SQLITE_TESTCTRL_VDBE_COVERAGE   21
 
#define SQLITE_TESTCTRL_BYTEORDER   22
 
#define SQLITE_TESTCTRL_ISINIT   23
 
#define SQLITE_TESTCTRL_SORTER_MMAP   24
 
#define SQLITE_TESTCTRL_IMPOSTER   25
 
#define SQLITE_TESTCTRL_LAST   25
 
#define SQLITE_STATUS_MEMORY_USED   0
 
#define SQLITE_STATUS_PAGECACHE_USED   1
 
#define SQLITE_STATUS_PAGECACHE_OVERFLOW   2
 
#define SQLITE_STATUS_SCRATCH_USED   3
 
#define SQLITE_STATUS_SCRATCH_OVERFLOW   4
 
#define SQLITE_STATUS_MALLOC_SIZE   5
 
#define SQLITE_STATUS_PARSER_STACK   6
 
#define SQLITE_STATUS_PAGECACHE_SIZE   7
 
#define SQLITE_STATUS_SCRATCH_SIZE   8
 
#define SQLITE_STATUS_MALLOC_COUNT   9
 
#define SQLITE_DBSTATUS_LOOKASIDE_USED   0
 
#define SQLITE_DBSTATUS_CACHE_USED   1
 
#define SQLITE_DBSTATUS_SCHEMA_USED   2
 
#define SQLITE_DBSTATUS_STMT_USED   3
 
#define SQLITE_DBSTATUS_LOOKASIDE_HIT   4
 
#define SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE   5
 
#define SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL   6
 
#define SQLITE_DBSTATUS_CACHE_HIT   7
 
#define SQLITE_DBSTATUS_CACHE_MISS   8
 
#define SQLITE_DBSTATUS_CACHE_WRITE   9
 
#define SQLITE_DBSTATUS_DEFERRED_FKS   10
 
#define SQLITE_DBSTATUS_MAX   10 /* Largest defined DBSTATUS */
 
#define SQLITE_STMTSTATUS_FULLSCAN_STEP   1
 
#define SQLITE_STMTSTATUS_SORT   2
 
#define SQLITE_STMTSTATUS_AUTOINDEX   3
 
#define SQLITE_STMTSTATUS_VM_STEP   4
 
#define SQLITE_CHECKPOINT_PASSIVE   0 /* Do as much as possible w/o blocking */
 
#define SQLITE_CHECKPOINT_FULL   1 /* Wait for writers, then checkpoint */
 
#define SQLITE_CHECKPOINT_RESTART   2 /* Like FULL but wait for for readers */
 
#define SQLITE_CHECKPOINT_TRUNCATE   3 /* Like RESTART but also truncate WAL */
 
#define SQLITE_VTAB_CONSTRAINT_SUPPORT   1
 
#define SQLITE_ROLLBACK   1
 
#define SQLITE_FAIL   3
 
#define SQLITE_REPLACE   5
 
#define SQLITE_SCANSTAT_NLOOP   0
 
#define SQLITE_SCANSTAT_NVISIT   1
 
#define SQLITE_SCANSTAT_EST   2
 
#define SQLITE_SCANSTAT_NAME   3
 
#define SQLITE_SCANSTAT_EXPLAIN   4
 
#define SQLITE_SCANSTAT_SELECTID   5
 
#define _SQLITE3RTREE_H_
 
#define NOT_WITHIN   0 /* Object completely outside of query region */
 
#define PARTLY_WITHIN   1 /* Object partially overlaps query region */
 
#define FULLY_WITHIN   2 /* Object fully contained within query region */
 
#define SQLITE_MAX_LENGTH   1000000000
 
#define SQLITE_MAX_COLUMN   2000
 
#define SQLITE_MAX_SQL_LENGTH   1000000000
 
#define SQLITE_MAX_EXPR_DEPTH   1000
 
#define SQLITE_MAX_COMPOUND_SELECT   500
 
#define SQLITE_MAX_VDBE_OP   25000
 
#define SQLITE_MAX_FUNCTION_ARG   127
 
#define SQLITE_DEFAULT_CACHE_SIZE   2000
 
#define SQLITE_DEFAULT_WAL_AUTOCHECKPOINT   1000
 
#define SQLITE_MAX_ATTACHED   10
 
#define SQLITE_MAX_VARIABLE_NUMBER   999
 
#define SQLITE_MAX_PAGE_SIZE   65536
 
#define SQLITE_DEFAULT_PAGE_SIZE   1024
 
#define SQLITE_MAX_DEFAULT_PAGE_SIZE   8192
 
#define SQLITE_MAX_PAGE_COUNT   1073741823
 
#define SQLITE_MAX_LIKE_PATTERN_LENGTH   50000
 
#define SQLITE_MAX_TRIGGER_DEPTH   1000
 
#define SQLITE_INT_TO_PTR(X)   ((void*)&((char*)0)[X])
 
#define SQLITE_PTR_TO_INT(X)   ((int)(((char*)X)-(char*)0))
 
#define SQLITE_NOINLINE
 
#define SQLITE_THREADSAFE   1 /* IMP: R-07272-22309 */
 
#define SQLITE_POWERSAFE_OVERWRITE   1
 
#define SQLITE_DEFAULT_MEMSTATUS   1
 
#define SQLITE_SYSTEM_MALLOC   1
 
#define SQLITE_MALLOC_SOFT_LIMIT   1024
 
#define _XOPEN_SOURCE   600
 
#define NDEBUG   1
 
#define testcase(X)
 
#define TESTONLY(X)
 
#define VVA_ONLY(X)
 
#define ALWAYS(X)   (X)
 
#define NEVER(X)   (X)
 
#define IS_BIG_INT(X)   (((X)&~(i64)0xffffffff)!=0)
 
#define likely(X)   (X)
 
#define unlikely(X)   (X)
 
#define _SQLITE_HASH_H_
 
#define sqliteHashFirst(H)   ((H)->first)
 
#define sqliteHashNext(E)   ((E)->next)
 
#define sqliteHashData(E)   ((E)->data)
 
#define TK_SEMI   1
 
#define TK_EXPLAIN   2
 
#define TK_QUERY   3
 
#define TK_PLAN   4
 
#define TK_BEGIN   5
 
#define TK_TRANSACTION   6
 
#define TK_DEFERRED   7
 
#define TK_IMMEDIATE   8
 
#define TK_EXCLUSIVE   9
 
#define TK_COMMIT   10
 
#define TK_END   11
 
#define TK_ROLLBACK   12
 
#define TK_SAVEPOINT   13
 
#define TK_RELEASE   14
 
#define TK_TO   15
 
#define TK_TABLE   16
 
#define TK_CREATE   17
 
#define TK_IF   18
 
#define TK_NOT   19
 
#define TK_EXISTS   20
 
#define TK_TEMP   21
 
#define TK_LP   22
 
#define TK_RP   23
 
#define TK_AS   24
 
#define TK_WITHOUT   25
 
#define TK_COMMA   26
 
#define TK_ID   27
 
#define TK_INDEXED   28
 
#define TK_ABORT   29
 
#define TK_ACTION   30
 
#define TK_AFTER   31
 
#define TK_ANALYZE   32
 
#define TK_ASC   33
 
#define TK_ATTACH   34
 
#define TK_BEFORE   35
 
#define TK_BY   36
 
#define TK_CASCADE   37
 
#define TK_CAST   38
 
#define TK_COLUMNKW   39
 
#define TK_CONFLICT   40
 
#define TK_DATABASE   41
 
#define TK_DESC   42
 
#define TK_DETACH   43
 
#define TK_EACH   44
 
#define TK_FAIL   45
 
#define TK_FOR   46
 
#define TK_IGNORE   47
 
#define TK_INITIALLY   48
 
#define TK_INSTEAD   49
 
#define TK_LIKE_KW   50
 
#define TK_MATCH   51
 
#define TK_NO   52
 
#define TK_KEY   53
 
#define TK_OF   54
 
#define TK_OFFSET   55
 
#define TK_PRAGMA   56
 
#define TK_RAISE   57
 
#define TK_RECURSIVE   58
 
#define TK_REPLACE   59
 
#define TK_RESTRICT   60
 
#define TK_ROW   61
 
#define TK_TRIGGER   62
 
#define TK_VACUUM   63
 
#define TK_VIEW   64
 
#define TK_VIRTUAL   65
 
#define TK_WITH   66
 
#define TK_REINDEX   67
 
#define TK_RENAME   68
 
#define TK_CTIME_KW   69
 
#define TK_ANY   70
 
#define TK_OR   71
 
#define TK_AND   72
 
#define TK_IS   73
 
#define TK_BETWEEN   74
 
#define TK_IN   75
 
#define TK_ISNULL   76
 
#define TK_NOTNULL   77
 
#define TK_NE   78
 
#define TK_EQ   79
 
#define TK_GT   80
 
#define TK_LE   81
 
#define TK_LT   82
 
#define TK_GE   83
 
#define TK_ESCAPE   84
 
#define TK_BITAND   85
 
#define TK_BITOR   86
 
#define TK_LSHIFT   87
 
#define TK_RSHIFT   88
 
#define TK_PLUS   89
 
#define TK_MINUS   90
 
#define TK_STAR   91
 
#define TK_SLASH   92
 
#define TK_REM   93
 
#define TK_CONCAT   94
 
#define TK_COLLATE   95
 
#define TK_BITNOT   96
 
#define TK_STRING   97
 
#define TK_JOIN_KW   98
 
#define TK_CONSTRAINT   99
 
#define TK_DEFAULT   100
 
#define TK_NULL   101
 
#define TK_PRIMARY   102
 
#define TK_UNIQUE   103
 
#define TK_CHECK   104
 
#define TK_REFERENCES   105
 
#define TK_AUTOINCR   106
 
#define TK_ON   107
 
#define TK_INSERT   108
 
#define TK_DELETE   109
 
#define TK_UPDATE   110
 
#define TK_SET   111
 
#define TK_DEFERRABLE   112
 
#define TK_FOREIGN   113
 
#define TK_DROP   114
 
#define TK_UNION   115
 
#define TK_ALL   116
 
#define TK_EXCEPT   117
 
#define TK_INTERSECT   118
 
#define TK_SELECT   119
 
#define TK_VALUES   120
 
#define TK_DISTINCT   121
 
#define TK_DOT   122
 
#define TK_FROM   123
 
#define TK_JOIN   124
 
#define TK_USING   125
 
#define TK_ORDER   126
 
#define TK_GROUP   127
 
#define TK_HAVING   128
 
#define TK_LIMIT   129
 
#define TK_WHERE   130
 
#define TK_INTO   131
 
#define TK_INTEGER   132
 
#define TK_FLOAT   133
 
#define TK_BLOB   134
 
#define TK_VARIABLE   135
 
#define TK_CASE   136
 
#define TK_WHEN   137
 
#define TK_THEN   138
 
#define TK_ELSE   139
 
#define TK_INDEX   140
 
#define TK_ALTER   141
 
#define TK_ADD   142
 
#define TK_TO_TEXT   143
 
#define TK_TO_BLOB   144
 
#define TK_TO_NUMERIC   145
 
#define TK_TO_INT   146
 
#define TK_TO_REAL   147
 
#define TK_ISNOT   148
 
#define TK_END_OF_FILE   149
 
#define TK_ILLEGAL   150
 
#define TK_SPACE   151
 
#define TK_UNCLOSED_STRING   152
 
#define TK_FUNCTION   153
 
#define TK_COLUMN   154
 
#define TK_AGG_FUNCTION   155
 
#define TK_AGG_COLUMN   156
 
#define TK_UMINUS   157
 
#define TK_UPLUS   158
 
#define TK_REGISTER   159
 
#define SQLITE_BIG_DBL   (1e99)
 
#define OMIT_TEMPDB   0
 
#define SQLITE_MAX_FILE_FORMAT   4
 
#define SQLITE_DEFAULT_FILE_FORMAT   4
 
#define SQLITE_DEFAULT_RECURSIVE_TRIGGERS   0
 
#define SQLITE_TEMP_STORE   1
 
#define SQLITE_TEMP_STORE_xc   1 /* Exclude from ctime.c */
 
#define SQLITE_MAX_WORKER_THREADS   8
 
#define SQLITE_DEFAULT_WORKER_THREADS   0
 
#define offsetof(STRUCTURE, FIELD)   ((int)((char*)&((STRUCTURE*)0)->FIELD))
 
#define MIN(A, B)   ((A)<(B)?(A):(B))
 
#define MAX(A, B)   ((A)>(B)?(A):(B))
 
#define SWAP(TYPE, A, B)   {TYPE t=A; A=B; B=t;}
 
#define SQLITE_ASCII   1
 
#define UINT32_TYPE   unsigned int
 
#define UINT16_TYPE   unsigned short int
 
#define INT16_TYPE   short int
 
#define UINT8_TYPE   unsigned char
 
#define INT8_TYPE   signed char
 
#define LONGDOUBLE_TYPE   long double
 
#define SQLITE_MAX_U32   ((((u64)1)<<32)-1)
 
#define SQLITE_PTRSIZE   8
 
#define SQLITE_BYTEORDER   0 /* 0 means "unknown at compile-time" */
 
#define SQLITE_BIGENDIAN   (*(char *)(&sqlite3one)==0)
 
#define SQLITE_LITTLEENDIAN   (*(char *)(&sqlite3one)==1)
 
#define SQLITE_UTF16NATIVE   (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE)
 
#define LARGEST_INT64   (0xffffffff|(((i64)0x7fffffff)<<32))
 
#define SMALLEST_INT64   (((i64)-1) - LARGEST_INT64)
 
#define ROUND8(x)   (((x)+7)&~7)
 
#define ROUNDDOWN8(x)   ((x)&~7)
 
#define EIGHT_BYTE_ALIGNMENT(X)   ((((char*)(X) - (char*)0)&7)==0)
 
#define SQLITE_MAX_MMAP_SIZE   0
 
#define SQLITE_MAX_MMAP_SIZE_xc   1 /* exclude from ctime.c */
 
#define SQLITE_DEFAULT_MMAP_SIZE   0
 
#define SQLITE_DEFAULT_MMAP_SIZE_xc   1 /* Exclude from ctime.c */
 
#define SELECTTRACE_ENABLED   0
 
#define MASTER_NAME   "sqlite_master"
 
#define TEMP_MASTER_NAME   "sqlite_temp_master"
 
#define MASTER_ROOT   1
 
#define SCHEMA_TABLE(x)   ((!OMIT_TEMPDB)&&(x==1)?TEMP_MASTER_NAME:MASTER_NAME)
 
#define ArraySize(X)   ((int)(sizeof(X)/sizeof(X[0])))
 
#define IsPowerOfTwo(X)   (((X)&((X)-1))==0)
 
#define SQLITE_DYNAMIC   ((sqlite3_destructor_type)sqlite3MallocSize)
 
#define SQLITE_WSD
 
#define GLOBAL(t, v)   v
 
#define sqlite3GlobalConfig   sqlite3Config
 
#define UNUSED_PARAMETER(x)   (void)(x)
 
#define UNUSED_PARAMETER2(x, y)   UNUSED_PARAMETER(x),UNUSED_PARAMETER(y)
 
#define _BTREE_H_
 
#define SQLITE_N_BTREE_META   16
 
#define SQLITE_DEFAULT_AUTOVACUUM   0
 
#define BTREE_AUTOVACUUM_NONE   0 /* Do not do auto-vacuum */
 
#define BTREE_AUTOVACUUM_FULL   1 /* Do full auto-vacuum */
 
#define BTREE_AUTOVACUUM_INCR   2 /* Incremental vacuum */
 
#define BTREE_OMIT_JOURNAL   1 /* Do not create or use a rollback journal */
 
#define BTREE_MEMORY   2 /* This is an in-memory DB */
 
#define BTREE_SINGLE   4 /* The file contains at most 1 b-tree */
 
#define BTREE_UNORDERED   8 /* Use of a hash implementation is OK */
 
#define BTREE_INTKEY   1 /* Table has only 64-bit signed integer keys */
 
#define BTREE_BLOBKEY   2 /* Table has keys only - no data */
 
#define BTREE_FREE_PAGE_COUNT   0
 
#define BTREE_SCHEMA_VERSION   1
 
#define BTREE_FILE_FORMAT   2
 
#define BTREE_DEFAULT_CACHE_SIZE   3
 
#define BTREE_LARGEST_ROOT_PAGE   4
 
#define BTREE_TEXT_ENCODING   5
 
#define BTREE_USER_VERSION   6
 
#define BTREE_INCR_VACUUM   7
 
#define BTREE_APPLICATION_ID   8
 
#define BTREE_DATA_VERSION   15 /* A virtual meta-value */
 
#define BTREE_BULKLOAD   0x00000001 /* Used to full index in sorted order */
 
#define BTREE_SEEK_EQ   0x00000002 /* EQ seeks only - no range seeks */
 
#define _SQLITE_VDBE_H_
 
#define P4_NOTUSED   0 /* The P4 parameter is not used */
 
#define P4_DYNAMIC   (-1) /* Pointer to a string obtained from sqliteMalloc() */
 
#define P4_STATIC   (-2) /* Pointer to a static string */
 
#define P4_COLLSEQ   (-4) /* P4 is a pointer to a CollSeq structure */
 
#define P4_FUNCDEF   (-5) /* P4 is a pointer to a FuncDef structure */
 
#define P4_KEYINFO   (-6) /* P4 is a pointer to a KeyInfo structure */
 
#define P4_MEM   (-8) /* P4 is a pointer to a Mem* structure */
 
#define P4_TRANSIENT   0 /* P4 is a pointer to a transient string */
 
#define P4_VTAB   (-10) /* P4 is a pointer to an sqlite3_vtab structure */
 
#define P4_MPRINTF   (-11) /* P4 is a string obtained from sqlite3_mprintf() */
 
#define P4_REAL   (-12) /* P4 is a 64-bit floating point value */
 
#define P4_INT64   (-13) /* P4 is a 64-bit signed integer */
 
#define P4_INT32   (-14) /* P4 is a 32-bit signed integer */
 
#define P4_INTARRAY   (-15) /* P4 is a vector of 32-bit integers */
 
#define P4_SUBPROGRAM   (-18) /* P4 is a pointer to a SubProgram structure */
 
#define P4_ADVANCE   (-19) /* P4 is a pointer to BtreeNext() or BtreePrev() */
 
#define P5_ConstraintNotNull   1
 
#define P5_ConstraintUnique   2
 
#define P5_ConstraintCheck   3
 
#define P5_ConstraintFK   4
 
#define COLNAME_NAME   0
 
#define COLNAME_DECLTYPE   1
 
#define COLNAME_DATABASE   2
 
#define COLNAME_TABLE   3
 
#define COLNAME_COLUMN   4
 
#define COLNAME_N   2 /* Store the name and decltype */
 
#define ADDR(X)   (-1-(X))
 
#define OP_Function   1 /* synopsis: r[P3]=func(r[P2@P5]) */
 
#define OP_Savepoint   2
 
#define OP_AutoCommit   3
 
#define OP_Transaction   4
 
#define OP_SorterNext   5
 
#define OP_PrevIfOpen   6
 
#define OP_NextIfOpen   7
 
#define OP_Prev   8
 
#define OP_Next   9
 
#define OP_AggStep   10 /* synopsis: accum=r[P3] step(r[P2@P5]) */
 
#define OP_Checkpoint   11
 
#define OP_JournalMode   12
 
#define OP_Vacuum   13
 
#define OP_VFilter   14 /* synopsis: iplan=r[P3] zplan='P4' */
 
#define OP_VUpdate   15 /* synopsis: data=r[P3@P2] */
 
#define OP_Goto   16
 
#define OP_Gosub   17
 
#define OP_Return   18
 
#define OP_Not   19 /* same as TK_NOT, synopsis: r[P2]= !r[P1] */
 
#define OP_InitCoroutine   20
 
#define OP_EndCoroutine   21
 
#define OP_Yield   22
 
#define OP_HaltIfNull   23 /* synopsis: if r[P3]=null halt */
 
#define OP_Halt   24
 
#define OP_Integer   25 /* synopsis: r[P2]=P1 */
 
#define OP_Int64   26 /* synopsis: r[P2]=P4 */
 
#define OP_String   27 /* synopsis: r[P2]='P4' (len=P1) */
 
#define OP_Null   28 /* synopsis: r[P2..P3]=NULL */
 
#define OP_SoftNull   29 /* synopsis: r[P1]=NULL */
 
#define OP_Blob   30 /* synopsis: r[P2]=P4 (len=P1) */
 
#define OP_Variable   31 /* synopsis: r[P2]=parameter(P1,P4) */
 
#define OP_Move   32 /* synopsis: r[P2@P3]=r[P1@P3] */
 
#define OP_Copy   33 /* synopsis: r[P2@P3+1]=r[P1@P3+1] */
 
#define OP_SCopy   34 /* synopsis: r[P2]=r[P1] */
 
#define OP_ResultRow   35 /* synopsis: output=r[P1@P2] */
 
#define OP_CollSeq   36
 
#define OP_AddImm   37 /* synopsis: r[P1]=r[P1]+P2 */
 
#define OP_MustBeInt   38
 
#define OP_RealAffinity   39
 
#define OP_Cast   40 /* synopsis: affinity(r[P1]) */
 
#define OP_Permutation   41
 
#define OP_Compare   42 /* synopsis: r[P1@P3] <-> r[P2@P3] */
 
#define OP_Jump   43
 
#define OP_Once   44
 
#define OP_If   45
 
#define OP_IfNot   46
 
#define OP_Column   47 /* synopsis: r[P3]=PX */
 
#define OP_Affinity   48 /* synopsis: affinity(r[P1@P2]) */
 
#define OP_MakeRecord   49 /* synopsis: r[P3]=mkrec(r[P1@P2]) */
 
#define OP_Count   50 /* synopsis: r[P2]=count() */
 
#define OP_ReadCookie   51
 
#define OP_SetCookie   52
 
#define OP_ReopenIdx   53 /* synopsis: root=P2 iDb=P3 */
 
#define OP_OpenRead   54 /* synopsis: root=P2 iDb=P3 */
 
#define OP_OpenWrite   55 /* synopsis: root=P2 iDb=P3 */
 
#define OP_OpenAutoindex   56 /* synopsis: nColumn=P2 */
 
#define OP_OpenEphemeral   57 /* synopsis: nColumn=P2 */
 
#define OP_SorterOpen   58
 
#define OP_SequenceTest   59 /* synopsis: if( cursor[P1].ctr++ ) pc = P2 */
 
#define OP_OpenPseudo   60 /* synopsis: P3 columns in r[P2] */
 
#define OP_Close   61
 
#define OP_SeekLT   62 /* synopsis: key=r[P3@P4] */
 
#define OP_SeekLE   63 /* synopsis: key=r[P3@P4] */
 
#define OP_SeekGE   64 /* synopsis: key=r[P3@P4] */
 
#define OP_SeekGT   65 /* synopsis: key=r[P3@P4] */
 
#define OP_Seek   66 /* synopsis: intkey=r[P2] */
 
#define OP_NoConflict   67 /* synopsis: key=r[P3@P4] */
 
#define OP_NotFound   68 /* synopsis: key=r[P3@P4] */
 
#define OP_Found   69 /* synopsis: key=r[P3@P4] */
 
#define OP_NotExists   70 /* synopsis: intkey=r[P3] */
 
#define OP_Or   71 /* same as TK_OR, synopsis: r[P3]=(r[P1] || r[P2]) */
 
#define OP_And   72 /* same as TK_AND, synopsis: r[P3]=(r[P1] && r[P2]) */
 
#define OP_Sequence   73 /* synopsis: r[P2]=cursor[P1].ctr++ */
 
#define OP_NewRowid   74 /* synopsis: r[P2]=rowid */
 
#define OP_Insert   75 /* synopsis: intkey=r[P3] data=r[P2] */
 
#define OP_IsNull   76 /* same as TK_ISNULL, synopsis: if r[P1]==NULL goto P2 */
 
#define OP_NotNull   77 /* same as TK_NOTNULL, synopsis: if r[P1]!=NULL goto P2 */
 
#define OP_Ne   78 /* same as TK_NE, synopsis: if r[P1]!=r[P3] goto P2 */
 
#define OP_Eq   79 /* same as TK_EQ, synopsis: if r[P1]==r[P3] goto P2 */
 
#define OP_Gt   80 /* same as TK_GT, synopsis: if r[P1]>r[P3] goto P2 */
 
#define OP_Le   81 /* same as TK_LE, synopsis: if r[P1]<=r[P3] goto P2 */
 
#define OP_Lt   82 /* same as TK_LT, synopsis: if r[P1]<r[P3] goto P2 */
 
#define OP_Ge   83 /* same as TK_GE, synopsis: if r[P1]>=r[P3] goto P2 */
 
#define OP_InsertInt   84 /* synopsis: intkey=P3 data=r[P2] */
 
#define OP_BitAnd   85 /* same as TK_BITAND, synopsis: r[P3]=r[P1]&r[P2] */
 
#define OP_BitOr   86 /* same as TK_BITOR, synopsis: r[P3]=r[P1]|r[P2] */
 
#define OP_ShiftLeft   87 /* same as TK_LSHIFT, synopsis: r[P3]=r[P2]<<r[P1] */
 
#define OP_ShiftRight   88 /* same as TK_RSHIFT, synopsis: r[P3]=r[P2]>>r[P1] */
 
#define OP_Add   89 /* same as TK_PLUS, synopsis: r[P3]=r[P1]+r[P2] */
 
#define OP_Subtract   90 /* same as TK_MINUS, synopsis: r[P3]=r[P2]-r[P1] */
 
#define OP_Multiply   91 /* same as TK_STAR, synopsis: r[P3]=r[P1]*r[P2] */
 
#define OP_Divide   92 /* same as TK_SLASH, synopsis: r[P3]=r[P2]/r[P1] */
 
#define OP_Remainder   93 /* same as TK_REM, synopsis: r[P3]=r[P2]%r[P1] */
 
#define OP_Concat   94 /* same as TK_CONCAT, synopsis: r[P3]=r[P2]+r[P1] */
 
#define OP_Delete   95
 
#define OP_BitNot   96 /* same as TK_BITNOT, synopsis: r[P1]= ~r[P1] */
 
#define OP_String8   97 /* same as TK_STRING, synopsis: r[P2]='P4' */
 
#define OP_ResetCount   98
 
#define OP_SorterCompare   99 /* synopsis: if key(P1)!=trim(r[P3],P4) goto P2 */
 
#define OP_SorterData   100 /* synopsis: r[P2]=data */
 
#define OP_RowKey   101 /* synopsis: r[P2]=key */
 
#define OP_RowData   102 /* synopsis: r[P2]=data */
 
#define OP_Rowid   103 /* synopsis: r[P2]=rowid */
 
#define OP_NullRow   104
 
#define OP_Last   105
 
#define OP_SorterSort   106
 
#define OP_Sort   107
 
#define OP_Rewind   108
 
#define OP_SorterInsert   109
 
#define OP_IdxInsert   110 /* synopsis: key=r[P2] */
 
#define OP_IdxDelete   111 /* synopsis: key=r[P2@P3] */
 
#define OP_IdxRowid   112 /* synopsis: r[P2]=rowid */
 
#define OP_IdxLE   113 /* synopsis: key=r[P3@P4] */
 
#define OP_IdxGT   114 /* synopsis: key=r[P3@P4] */
 
#define OP_IdxLT   115 /* synopsis: key=r[P3@P4] */
 
#define OP_IdxGE   116 /* synopsis: key=r[P3@P4] */
 
#define OP_Destroy   117
 
#define OP_Clear   118
 
#define OP_ResetSorter   119
 
#define OP_CreateIndex   120 /* synopsis: r[P2]=root iDb=P1 */
 
#define OP_CreateTable   121 /* synopsis: r[P2]=root iDb=P1 */
 
#define OP_ParseSchema   122
 
#define OP_LoadAnalysis   123
 
#define OP_DropTable   124
 
#define OP_DropIndex   125
 
#define OP_DropTrigger   126
 
#define OP_IntegrityCk   127
 
#define OP_RowSetAdd   128 /* synopsis: rowset(P1)=r[P2] */
 
#define OP_RowSetRead   129 /* synopsis: r[P3]=rowset(P1) */
 
#define OP_RowSetTest   130 /* synopsis: if r[P3] in rowset(P1) goto P2 */
 
#define OP_Program   131
 
#define OP_Param   132
 
#define OP_Real   133 /* same as TK_FLOAT, synopsis: r[P2]=P4 */
 
#define OP_FkCounter   134 /* synopsis: fkctr[P1]+=P2 */
 
#define OP_FkIfZero   135 /* synopsis: if fkctr[P1]==0 goto P2 */
 
#define OP_MemMax   136 /* synopsis: r[P1]=max(r[P1],r[P2]) */
 
#define OP_IfPos   137 /* synopsis: if r[P1]>0 goto P2 */
 
#define OP_IfNeg   138 /* synopsis: r[P1]+=P3, if r[P1]<0 goto P2 */
 
#define OP_IfNotZero   139 /* synopsis: if r[P1]!=0 then r[P1]+=P3, goto P2 */
 
#define OP_DecrJumpZero   140 /* synopsis: if (--r[P1])==0 goto P2 */
 
#define OP_JumpZeroIncr   141 /* synopsis: if (r[P1]++)==0 ) goto P2 */
 
#define OP_AggFinal   142 /* synopsis: accum=r[P1] N=P2 */
 
#define OP_IncrVacuum   143
 
#define OP_Expire   144
 
#define OP_TableLock   145 /* synopsis: iDb=P1 root=P2 write=P3 */
 
#define OP_VBegin   146
 
#define OP_VCreate   147
 
#define OP_VDestroy   148
 
#define OP_VOpen   149
 
#define OP_VColumn   150 /* synopsis: r[P3]=vcolumn(P2) */
 
#define OP_VNext   151
 
#define OP_VRename   152
 
#define OP_Pagecount   153
 
#define OP_MaxPgcnt   154
 
#define OP_Init   155 /* synopsis: Start at P2 */
 
#define OP_Noop   156
 
#define OP_Explain   157
 
#define OPFLG_JUMP   0x0001 /* jump: P2 holds jmp target */
 
#define OPFLG_IN1   0x0002 /* in1: P1 is an input */
 
#define OPFLG_IN2   0x0004 /* in2: P2 is an input */
 
#define OPFLG_IN3   0x0008 /* in3: P3 is an input */
 
#define OPFLG_OUT2   0x0010 /* out2: P2 is an output */
 
#define OPFLG_OUT3   0x0020 /* out3: P3 is an output */
 
#define OPFLG_INITIALIZER
 
#define VdbeComment(X)
 
#define VdbeNoopComment(X)
 
#define VdbeModuleComment(X)
 
#define VdbeCoverage(v)
 
#define VdbeCoverageIf(v, x)
 
#define VdbeCoverageAlwaysTaken(v)
 
#define VdbeCoverageNeverTaken(v)
 
#define VDBE_OFFSET_LINENO(x)   0
 
#define sqlite3VdbeScanStatus(a, b, c, d, e)
 
#define _PAGER_H_
 
#define SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT   -1
 
#define PAGER_MJ_PGNO(x)   ((Pgno)((PENDING_BYTE/((x)->pageSize))+1))
 
#define PAGER_OMIT_JOURNAL   0x0001 /* Do not use a rollback journal */
 
#define PAGER_MEMORY   0x0002 /* In-memory database */
 
#define PAGER_LOCKINGMODE_QUERY   -1
 
#define PAGER_LOCKINGMODE_NORMAL   0
 
#define PAGER_LOCKINGMODE_EXCLUSIVE   1
 
#define PAGER_JOURNALMODE_QUERY   (-1) /* Query the value of journalmode */
 
#define PAGER_JOURNALMODE_DELETE   0 /* Commit by deleting journal file */
 
#define PAGER_JOURNALMODE_PERSIST   1 /* Commit by zeroing journal header */
 
#define PAGER_JOURNALMODE_OFF   2 /* Journal omitted. */
 
#define PAGER_JOURNALMODE_TRUNCATE   3 /* Commit by truncating journal */
 
#define PAGER_JOURNALMODE_MEMORY   4 /* In-memory journal file */
 
#define PAGER_JOURNALMODE_WAL   5 /* Use write-ahead logging */
 
#define PAGER_GET_NOCONTENT   0x01 /* Do not load data from disk */
 
#define PAGER_GET_READONLY   0x02 /* Read-only page is acceptable */
 
#define PAGER_SYNCHRONOUS_OFF   0x01 /* PRAGMA synchronous=OFF */
 
#define PAGER_SYNCHRONOUS_NORMAL   0x02 /* PRAGMA synchronous=NORMAL */
 
#define PAGER_SYNCHRONOUS_FULL   0x03 /* PRAGMA synchronous=FULL */
 
#define PAGER_SYNCHRONOUS_MASK   0x03 /* Mask for three values above */
 
#define PAGER_FULLFSYNC   0x04 /* PRAGMA fullfsync=ON */
 
#define PAGER_CKPT_FULLFSYNC   0x08 /* PRAGMA checkpoint_fullfsync=ON */
 
#define PAGER_CACHESPILL   0x10 /* PRAGMA cache_spill=ON */
 
#define PAGER_FLAGS_MASK   0x1c /* All above except SYNCHRONOUS */
 
#define sqlite3PagerGet(A, B, C)   sqlite3PagerAcquire(A,B,C,0)
 
#define disable_simulated_io_errors()
 
#define enable_simulated_io_errors()
 
#define PGHDR_DIRTY   0x002 /* Page has changed */
 
#define PGHDR_NEED_SYNC
 
#define PGHDR_NEED_READ   0x008 /* Content is unread */
 
#define PGHDR_REUSE_UNLIKELY   0x010 /* A hint that reuse is unlikely */
 
#define PGHDR_DONT_WRITE   0x020 /* Do not write content to disk */
 
#define PGHDR_MMAP   0x040 /* This is an mmap page object */
 
#define _SQLITE_OS_H_
 
#define _OS_SETUP_H_
 
#define SQLITE_OS_OTHER   0
 
#define SQLITE_OS_WIN   0
 
#define SQLITE_OS_UNIX   1
 
#define SET_FULLSYNC(x, y)
 
#define SQLITE_DEFAULT_SECTOR_SIZE   4096
 
#define SQLITE_TEMP_FILE_PREFIX   "etilqs_"
 
#define NO_LOCK   0
 
#define SHARED_LOCK   1
 
#define RESERVED_LOCK   2
 
#define PENDING_LOCK   3
 
#define EXCLUSIVE_LOCK   4
 
#define PENDING_BYTE   sqlite3PendingByte
 
#define RESERVED_BYTE   (PENDING_BYTE+1)
 
#define SHARED_FIRST   (PENDING_BYTE+2)
 
#define SHARED_SIZE   510
 
#define SQLITE_FCNTL_DB_UNCHANGED   0xca093fa0
 
#define SQLITE_MUTEX_PTHREADS
 
#define MUTEX_LOGIC(X)   X
 
#define DbHasProperty(D, I, P)   (((D)->aDb[I].pSchema->schemaFlags&(P))==(P))
 
#define DbHasAnyProperty(D, I, P)   (((D)->aDb[I].pSchema->schemaFlags&(P))!=0)
 
#define DbSetProperty(D, I, P)   (D)->aDb[I].pSchema->schemaFlags|=(P)
 
#define DbClearProperty(D, I, P)   (D)->aDb[I].pSchema->schemaFlags&=~(P)
 
#define DB_SchemaLoaded   0x0001 /* The schema has been loaded */
 
#define DB_UnresetViews   0x0002 /* Some views have defined column names */
 
#define DB_Empty   0x0004 /* The file is empty (length 0 bytes) */
 
#define SQLITE_N_LIMIT   (SQLITE_LIMIT_WORKER_THREADS+1)
 
#define SCHEMA_ENC(db)   ((db)->aDb[0].pSchema->enc)
 
#define ENC(db)   ((db)->enc)
 
#define SQLITE_VdbeTrace   0x00000001 /* True to trace VDBE execution */
 
#define SQLITE_InternChanges   0x00000002 /* Uncommitted Hash table changes */
 
#define SQLITE_FullFSync   0x00000004 /* Use full fsync on the backend */
 
#define SQLITE_CkptFullFSync   0x00000008 /* Use full fsync for checkpoint */
 
#define SQLITE_CacheSpill   0x00000010 /* OK to spill pager cache */
 
#define SQLITE_FullColNames   0x00000020 /* Show full column names on SELECT */
 
#define SQLITE_ShortColNames   0x00000040 /* Show short columns names */
 
#define SQLITE_CountRows   0x00000080 /* Count rows changed by INSERT, */
 
#define SQLITE_NullCallback   0x00000100 /* Invoke the callback once if the */
 
#define SQLITE_SqlTrace   0x00000200 /* Debug print SQL as it executes */
 
#define SQLITE_VdbeListing   0x00000400 /* Debug listings of VDBE programs */
 
#define SQLITE_WriteSchema   0x00000800 /* OK to update SQLITE_MASTER */
 
#define SQLITE_VdbeAddopTrace   0x00001000 /* Trace sqlite3VdbeAddOp() calls */
 
#define SQLITE_IgnoreChecks   0x00002000 /* Do not enforce check constraints */
 
#define SQLITE_ReadUncommitted   0x0004000 /* For shared-cache mode */
 
#define SQLITE_LegacyFileFmt   0x00008000 /* Create new databases in format 1 */
 
#define SQLITE_RecoveryMode   0x00010000 /* Ignore schema errors */
 
#define SQLITE_ReverseOrder   0x00020000 /* Reverse unordered SELECTs */
 
#define SQLITE_RecTriggers   0x00040000 /* Enable recursive triggers */
 
#define SQLITE_ForeignKeys   0x00080000 /* Enforce foreign key constraints */
 
#define SQLITE_AutoIndex   0x00100000 /* Enable automatic indexes */
 
#define SQLITE_PreferBuiltin   0x00200000 /* Preference to built-in funcs */
 
#define SQLITE_LoadExtension   0x00400000 /* Enable load_extension */
 
#define SQLITE_EnableTrigger   0x00800000 /* True to enable triggers */
 
#define SQLITE_DeferFKs   0x01000000 /* Defer all FK constraints */
 
#define SQLITE_QueryOnly   0x02000000 /* Disable database changes */
 
#define SQLITE_VdbeEQP   0x04000000 /* Debug EXPLAIN QUERY PLAN */
 
#define SQLITE_Vacuum   0x08000000 /* Currently in a VACUUM */
 
#define SQLITE_QueryFlattener   0x0001 /* Query flattening */
 
#define SQLITE_ColumnCache   0x0002 /* Column cache */
 
#define SQLITE_GroupByOrder   0x0004 /* GROUPBY cover of ORDERBY */
 
#define SQLITE_FactorOutConst   0x0008 /* Constant factoring */
 
#define SQLITE_DistinctOpt   0x0020 /* DISTINCT using indexes */
 
#define SQLITE_CoverIdxScan   0x0040 /* Covering index scans */
 
#define SQLITE_OrderByIdxJoin   0x0080 /* ORDER BY of joins via index */
 
#define SQLITE_SubqCoroutine   0x0100 /* Evaluate subqueries as coroutines */
 
#define SQLITE_Transitive   0x0200 /* Transitive constraints */
 
#define SQLITE_OmitNoopJoin   0x0400 /* Omit unused tables in joins */
 
#define SQLITE_Stat34   0x0800 /* Use STAT3 or STAT4 data */
 
#define SQLITE_AllOpts   0xffff /* All optimizations */
 
#define OptimizationDisabled(db, mask)   (((db)->dbOptFlags&(mask))!=0)
 
#define OptimizationEnabled(db, mask)   (((db)->dbOptFlags&(mask))==0)
 
#define ConstFactorOk(P)   ((P)->okConstFactor)
 
#define SQLITE_MAGIC_OPEN   0xa029a697 /* Database is open */
 
#define SQLITE_MAGIC_CLOSED   0x9f3c2d33 /* Database is closed */
 
#define SQLITE_MAGIC_SICK   0x4b771290 /* Error and awaiting close */
 
#define SQLITE_MAGIC_BUSY   0xf03b7906 /* Database currently in use */
 
#define SQLITE_MAGIC_ERROR   0xb5357930 /* An SQLITE_MISUSE error occurred */
 
#define SQLITE_MAGIC_ZOMBIE   0x64cffc7f /* Close with last statement close */
 
#define SQLITE_FUNC_ENCMASK   0x003 /* SQLITE_UTF8, SQLITE_UTF16BE or UTF16LE */
 
#define SQLITE_FUNC_LIKE   0x004 /* Candidate for the LIKE optimization */
 
#define SQLITE_FUNC_CASE   0x008 /* Case-sensitive LIKE-type function */
 
#define SQLITE_FUNC_EPHEM   0x010 /* Ephemeral. Delete with VDBE */
 
#define SQLITE_FUNC_NEEDCOLL   0x020 /* sqlite3GetFuncCollSeq() might be called */
 
#define SQLITE_FUNC_LENGTH   0x040 /* Built-in length() function */
 
#define SQLITE_FUNC_TYPEOF   0x080 /* Built-in typeof() function */
 
#define SQLITE_FUNC_COUNT   0x100 /* Built-in count(*) aggregate */
 
#define SQLITE_FUNC_COALESCE   0x200 /* Built-in coalesce() or ifnull() */
 
#define SQLITE_FUNC_UNLIKELY   0x400 /* Built-in unlikely() function */
 
#define SQLITE_FUNC_CONSTANT   0x800 /* Constant inputs give a constant output */
 
#define SQLITE_FUNC_MINMAX   0x1000 /* True for min() and max() aggregates */
 
#define FUNCTION(zName, nArg, iArg, bNC, xFunc)
 
#define VFUNCTION(zName, nArg, iArg, bNC, xFunc)
 
#define FUNCTION2(zName, nArg, iArg, bNC, xFunc, extraFlags)
 
#define STR_FUNCTION(zName, nArg, pArg, bNC, xFunc)
 
#define LIKEFUNC(zName, nArg, arg, flags)
 
#define AGGREGATE(zName, nArg, arg, nc, xStep, xFinal)
 
#define AGGREGATE2(zName, nArg, arg, nc, xStep, xFinal, extraFlags)
 
#define SAVEPOINT_BEGIN   0
 
#define SAVEPOINT_RELEASE   1
 
#define SAVEPOINT_ROLLBACK   2
 
#define COLFLAG_PRIMKEY   0x0001 /* Column is part of the primary key */
 
#define COLFLAG_HIDDEN   0x0002 /* A hidden column in a virtual table */
 
#define SQLITE_SO_ASC   0 /* Sort in ascending order */
 
#define SQLITE_SO_DESC   1 /* Sort in ascending order */
 
#define SQLITE_AFF_NONE   'A'
 
#define SQLITE_AFF_TEXT   'B'
 
#define SQLITE_AFF_NUMERIC   'C'
 
#define SQLITE_AFF_INTEGER   'D'
 
#define SQLITE_AFF_REAL   'E'
 
#define sqlite3IsNumericAffinity(X)   ((X)>=SQLITE_AFF_NUMERIC)
 
#define SQLITE_AFF_MASK   0x47
 
#define SQLITE_JUMPIFNULL   0x10 /* jumps if either operand is NULL */
 
#define SQLITE_STOREP2   0x20 /* Store result in reg[P2] rather than jump */
 
#define SQLITE_NULLEQ   0x80 /* NULL=NULL */
 
#define SQLITE_NOTNULL   0x90 /* Assert that operands are never NULL */
 
#define TF_Readonly   0x01 /* Read-only system table */
 
#define TF_Ephemeral   0x02 /* An ephemeral table */
 
#define TF_HasPrimaryKey   0x04 /* Table has a primary key */
 
#define TF_Autoincrement   0x08 /* Integer primary key is autoincrement */
 
#define TF_Virtual   0x10 /* Is a virtual table */
 
#define TF_WithoutRowid   0x20 /* No rowid used. PRIMARY KEY is the key */
 
#define TF_OOOHidden   0x40 /* Out-of-Order hidden columns */
 
#define IsVirtual(X)   (((X)->tabFlags & TF_Virtual)!=0)
 
#define IsHiddenColumn(X)   (((X)->colFlags & COLFLAG_HIDDEN)!=0)
 
#define HasRowid(X)   (((X)->tabFlags & TF_WithoutRowid)==0)
 
#define OE_None   0 /* There is no constraint to check */
 
#define OE_Rollback   1 /* Fail the operation and rollback the transaction */
 
#define OE_Abort   2 /* Back out changes but do no rollback transaction */
 
#define OE_Fail   3 /* Stop the operation but leave all prior changes */
 
#define OE_Ignore   4 /* Ignore the error. Do not do the INSERT or UPDATE */
 
#define OE_Replace   5 /* Delete existing record, then do INSERT or UPDATE */
 
#define OE_Restrict   6 /* OE_Abort for IMMEDIATE, OE_Rollback for DEFERRED */
 
#define OE_SetNull   7 /* Set the foreign key value to NULL */
 
#define OE_SetDflt   8 /* Set the foreign key value to its default */
 
#define OE_Cascade   9 /* Cascade the changes */
 
#define OE_Default   10 /* Do whatever the default action is */
 
#define SQLITE_IDXTYPE_APPDEF   0 /* Created using CREATE INDEX */
 
#define SQLITE_IDXTYPE_UNIQUE   1 /* Implements a UNIQUE constraint */
 
#define SQLITE_IDXTYPE_PRIMARYKEY   2 /* Is the PRIMARY KEY for the table */
 
#define IsPrimaryKeyIndex(X)   ((X)->idxType==SQLITE_IDXTYPE_PRIMARYKEY)
 
#define IsUniqueIndex(X)   ((X)->onError!=OE_None)
 
#define EP_FromJoin   0x000001 /* Originates in ON/USING clause of outer join */
 
#define EP_Agg   0x000002 /* Contains one or more aggregate functions */
 
#define EP_Resolved   0x000004 /* IDs have been resolved to COLUMNs */
 
#define EP_Error   0x000008 /* Expression contains one or more errors */
 
#define EP_Distinct   0x000010 /* Aggregate function with DISTINCT keyword */
 
#define EP_VarSelect   0x000020 /* pSelect is correlated, not constant */
 
#define EP_DblQuoted   0x000040 /* token.z was originally in "..." */
 
#define EP_InfixFunc   0x000080 /* True for an infix function: LIKE, GLOB, etc */
 
#define EP_Collate   0x000100 /* Tree contains a TK_COLLATE operator */
 
#define EP_Generic   0x000200 /* Ignore COLLATE or affinity on this tree */
 
#define EP_IntValue   0x000400 /* Integer value contained in u.iValue */
 
#define EP_xIsSelect   0x000800 /* x.pSelect is valid (otherwise x.pList is) */
 
#define EP_Skip   0x001000 /* COLLATE, AS, or UNLIKELY */
 
#define EP_Reduced   0x002000 /* Expr struct EXPR_REDUCEDSIZE bytes only */
 
#define EP_TokenOnly   0x004000 /* Expr struct EXPR_TOKENONLYSIZE bytes only */
 
#define EP_Static   0x008000 /* Held in memory not obtained from malloc() */
 
#define EP_MemToken   0x010000 /* Need to sqlite3DbFree() Expr.zToken */
 
#define EP_NoReduce   0x020000 /* Cannot EXPRDUP_REDUCE this Expr */
 
#define EP_Unlikely   0x040000 /* unlikely() or likelihood() function */
 
#define EP_ConstFunc   0x080000 /* Node is a SQLITE_FUNC_CONSTANT function */
 
#define EP_CanBeNull   0x100000 /* Can be null despite NOT NULL constraint */
 
#define EP_Subquery   0x200000 /* Tree contains a TK_SELECT operator */
 
#define EP_Propagate   (EP_Collate|EP_Subquery) /* Propagate these bits up tree */
 
#define ExprHasProperty(E, P)   (((E)->flags&(P))!=0)
 
#define ExprHasAllProperty(E, P)   (((E)->flags&(P))==(P))
 
#define ExprSetProperty(E, P)   (E)->flags|=(P)
 
#define ExprClearProperty(E, P)   (E)->flags&=~(P)
 
#define ExprSetVVAProperty(E, P)
 
#define EXPR_FULLSIZE   sizeof(Expr) /* Full size */
 
#define EXPR_REDUCEDSIZE   offsetof(Expr,iTable) /* Common features */
 
#define EXPR_TOKENONLYSIZE   offsetof(Expr,pLeft) /* Fewer features */
 
#define EXPRDUP_REDUCE   0x0001 /* Used reduced-size Expr nodes */
 
#define BMS   ((int)(sizeof(Bitmask)*8))
 
#define MASKBIT(n)   (((Bitmask)1)<<(n))
 
#define MASKBIT32(n)   (((unsigned int)1)<<(n))
 
#define JT_INNER   0x0001 /* Any kind of inner or cross join */
 
#define JT_CROSS   0x0002 /* Explicit use of the CROSS keyword */
 
#define JT_NATURAL   0x0004 /* True for a "natural" join */
 
#define JT_LEFT   0x0008 /* Left outer join */
 
#define JT_RIGHT   0x0010 /* Right outer join */
 
#define JT_OUTER   0x0020 /* The "OUTER" keyword is present */
 
#define JT_ERROR   0x0040 /* unknown or unsupported join type */
 
#define WHERE_ORDERBY_NORMAL   0x0000 /* No-op */
 
#define WHERE_ORDERBY_MIN   0x0001 /* ORDER BY processing for min() func */
 
#define WHERE_ORDERBY_MAX   0x0002 /* ORDER BY processing for max() func */
 
#define WHERE_ONEPASS_DESIRED   0x0004 /* Want to do one-pass UPDATE/DELETE */
 
#define WHERE_DUPLICATES_OK   0x0008 /* Ok to return a row more than once */
 
#define WHERE_OMIT_OPEN_CLOSE   0x0010 /* Table cursors are already open */
 
#define WHERE_FORCE_TABLE   0x0020 /* Do not use an index-only search */
 
#define WHERE_ONETABLE_ONLY   0x0040 /* Only code the 1st table in pTabList */
 
#define WHERE_NO_AUTOINDEX   0x0080 /* Disallow automatic indexes */
 
#define WHERE_GROUPBY   0x0100 /* pOrderBy is really a GROUP BY */
 
#define WHERE_DISTINCTBY   0x0200 /* pOrderby is really a DISTINCT clause */
 
#define WHERE_WANT_DISTINCT   0x0400 /* All output needs to be distinct */
 
#define WHERE_SORTBYGROUP   0x0800 /* Support sqlite3WhereIsSorted() */
 
#define WHERE_REOPEN_IDX   0x1000 /* Try to use OP_ReopenIdx */
 
#define WHERE_DISTINCT_NOOP   0 /* DISTINCT keyword not used */
 
#define WHERE_DISTINCT_UNIQUE   1 /* No duplicates */
 
#define WHERE_DISTINCT_ORDERED   2 /* All duplicates are adjacent */
 
#define WHERE_DISTINCT_UNORDERED   3 /* Duplicates are scattered */
 
#define NC_AllowAgg   0x0001 /* Aggregate functions are allowed here */
 
#define NC_HasAgg   0x0002 /* One or more aggregate functions seen */
 
#define NC_IsCheck   0x0004 /* True if resolving names in a CHECK constraint */
 
#define NC_InAggFunc   0x0008 /* True if analyzing arguments to an agg func */
 
#define NC_PartIdx   0x0010 /* True if resolving a partial index WHERE */
 
#define NC_MinMaxAgg   0x1000 /* min/max aggregates seen. See note above */
 
#define SF_Distinct   0x0001 /* Output should be DISTINCT */
 
#define SF_Resolved   0x0002 /* Identifiers have been resolved */
 
#define SF_Aggregate   0x0004 /* Contains aggregate functions */
 
#define SF_UsesEphemeral   0x0008 /* Uses the OpenEphemeral opcode */
 
#define SF_Expanded   0x0010 /* sqlite3SelectExpand() called on this */
 
#define SF_HasTypeInfo   0x0020 /* FROM subqueries have Table metadata */
 
#define SF_Compound   0x0040 /* Part of a compound query */
 
#define SF_Values   0x0080 /* Synthesized from VALUES clause */
 
#define SF_MultiValue   0x0100 /* Single VALUES term with multiple rows */
 
#define SF_NestedFrom   0x0200 /* Part of a parenthesized FROM clause */
 
#define SF_MaybeConvert   0x0400 /* Need convertCompoundSelectToSubquery() */
 
#define SF_Recursive   0x0800 /* The recursive part of a recursive CTE */
 
#define SF_MinMaxAgg   0x1000 /* Aggregate containing min() or max() */
 
#define SF_Converted   0x2000 /* By convertCompoundSelectToSubquery() */
 
#define SRT_Union   1 /* Store result as keys in an index */
 
#define SRT_Except   2 /* Remove result from a UNION index */
 
#define SRT_Exists   3 /* Store 1 if the result is not empty */
 
#define SRT_Discard   4 /* Do not save the results anywhere */
 
#define SRT_Fifo   5 /* Store result as data with an automatic rowid */
 
#define SRT_DistFifo   6 /* Like SRT_Fifo, but unique results only */
 
#define SRT_Queue   7 /* Store result in an queue */
 
#define SRT_DistQueue   8 /* Like SRT_Queue, but unique results only */
 
#define IgnorableOrderby(X)   ((X->eDest)<=SRT_DistQueue)
 
#define SRT_Output   9 /* Output each row of result */
 
#define SRT_Mem   10 /* Store result in a memory cell */
 
#define SRT_Set   11 /* Store results as keys in an index */
 
#define SRT_EphemTab   12 /* Create transient tab and store like SRT_Table */
 
#define SRT_Coroutine   13 /* Generate a single row of result */
 
#define SRT_Table   14 /* Store result as data with an automatic rowid */
 
#define SQLITE_N_COLCACHE   10
 
#define DbMaskTest(M, I)   (((M)&(((yDbMask)1)<<(I)))!=0)
 
#define DbMaskZero(M)   (M)=0
 
#define DbMaskSet(M, I)   (M)|=(((yDbMask)1)<<(I))
 
#define DbMaskAllZero(M)   (M)==0
 
#define DbMaskNonZero(M)   (M)!=0
 
#define IN_DECLARE_VTAB   (pParse->declareVtab)
 
#define OPFLAG_NCHANGE   0x01 /* Set to update db->nChange */
 
#define OPFLAG_EPHEM   0x01 /* OP_Column: Ephemeral output is ok */
 
#define OPFLAG_LASTROWID   0x02 /* Set to update db->lastRowid */
 
#define OPFLAG_ISUPDATE   0x04 /* This OP_Insert is an sql UPDATE */
 
#define OPFLAG_APPEND   0x08 /* This is likely to be an append */
 
#define OPFLAG_USESEEKRESULT   0x10 /* Try to avoid a seek in BtreeInsert() */
 
#define OPFLAG_LENGTHARG   0x40 /* OP_Column only used for length() */
 
#define OPFLAG_TYPEOFARG   0x80 /* OP_Column only used for typeof() */
 
#define OPFLAG_BULKCSR   0x01 /* OP_Open** used to open bulk cursor */
 
#define OPFLAG_SEEKEQ   0x02 /* OP_Open** cursor uses EQ seek only */
 
#define OPFLAG_P2ISREG   0x04 /* P2 to OP_Open** is a register number */
 
#define OPFLAG_PERMUTE   0x01 /* OP_Compare: use the permutation */
 
#define TRIGGER_BEFORE   1
 
#define TRIGGER_AFTER   2
 
#define STRACCUM_NOMEM   1
 
#define STRACCUM_TOOBIG   2
 
#define CORRUPT_DB   (sqlite3Config.neverCorrupt==0)
 
#define WRC_Continue   0 /* Continue down into children */
 
#define WRC_Prune   1 /* Omit children but continue walking siblings */
 
#define WRC_Abort   2 /* Abandon the tree walk */
 
#define SQLITE_SKIP_UTF8(zIn)
 
#define SQLITE_CORRUPT_BKPT   sqlite3CorruptError(__LINE__)
 
#define SQLITE_MISUSE_BKPT   sqlite3MisuseError(__LINE__)
 
#define SQLITE_CANTOPEN_BKPT   sqlite3CantopenError(__LINE__)
 
#define sqlite3Toupper(x)   ((x)&~(sqlite3CtypeMap[(unsigned char)(x)]&0x20))
 
#define sqlite3Isspace(x)   (sqlite3CtypeMap[(unsigned char)(x)]&0x01)
 
#define sqlite3Isalnum(x)   (sqlite3CtypeMap[(unsigned char)(x)]&0x06)
 
#define sqlite3Isalpha(x)   (sqlite3CtypeMap[(unsigned char)(x)]&0x02)
 
#define sqlite3Isdigit(x)   (sqlite3CtypeMap[(unsigned char)(x)]&0x04)
 
#define sqlite3Isxdigit(x)   (sqlite3CtypeMap[(unsigned char)(x)]&0x08)
 
#define sqlite3Tolower(x)   (sqlite3UpperToLower[(unsigned char)(x)])
 
#define sqlite3StrICmp   sqlite3_stricmp
 
#define sqlite3StrNICmp   sqlite3_strnicmp
 
#define sqlite3StackAllocRaw(D, N)   sqlite3DbMallocRaw(D,N)
 
#define sqlite3StackAllocZero(D, N)   sqlite3DbMallocZero(D,N)
 
#define sqlite3StackFree(D, P)   sqlite3DbFree(D,P)
 
#define SQLITE_PRINTF_INTERNAL   0x01
 
#define SQLITE_PRINTF_SQLFUNC   0x02
 
#define SQLITE_ECEL_DUP   0x01 /* Deep, not shallow copies */
 
#define SQLITE_ECEL_FACTOR   0x02 /* Factor out constant terms */
 
#define sqlite3SelectSetName(A, B)
 
#define sqlite3ParseToplevel(p)   ((p)->pToplevel ? (p)->pToplevel : (p))
 
#define getVarint32(A, B)   (u8)((*(A)<(u8)0x80)?((B)=(u32)*(A)),1:sqlite3GetVarint32((A),(u32 *)&(B)))
 
#define putVarint32(A, B)
 
#define getVarint   sqlite3GetVarint
 
#define putVarint   sqlite3PutVarint
 
#define sqlite3FileSuffix3(X, Y)
 
#define sqlite3VtabInSync(db)   ((db)->nVTrans>0 && (db)->aVTrans==0)
 
#define SQLITE_FAULTINJECTOR_MALLOC   0
 
#define SQLITE_FAULTINJECTOR_COUNT   1
 
#define IN_INDEX_ROWID   1 /* Search the rowid of the table */
 
#define IN_INDEX_EPH   2 /* Search an ephemeral b-tree */
 
#define IN_INDEX_INDEX_ASC   3 /* Existing index ASCENDING */
 
#define IN_INDEX_INDEX_DESC   4 /* Existing index DESCENDING */
 
#define IN_INDEX_NOOP   5 /* No table available. Use comparisons */
 
#define IN_INDEX_NOOP_OK   0x0001 /* OK to return IN_INDEX_NOOP */
 
#define IN_INDEX_MEMBERSHIP   0x0002 /* IN operator used for membership test */
 
#define IN_INDEX_LOOP   0x0004 /* IN operator used as a loop */
 
#define sqlite3JournalSize(pVfs)   ((pVfs)->szOsFile)
 
#define sqlite3JournalExists(p)   1
 
#define sqlite3ConnectionBlocked(x, y)
 
#define sqlite3ConnectionUnlocked(x)
 
#define sqlite3ConnectionClosed(x)
 
#define IOTRACE(A)
 
#define sqlite3VdbeIOTraceSql(X)
 
#define sqlite3MemdebugSetType(X, Y)   /* no-op */
 
#define sqlite3MemdebugHasType(X, Y)   1
 
#define sqlite3MemdebugNoType(X, Y)   1
 
#define MEMTYPE_HEAP   0x01 /* General heap allocations */
 
#define MEMTYPE_LOOKASIDE   0x02 /* Heap that might have been lookaside */
 
#define MEMTYPE_SCRATCH   0x04 /* Scratch allocations */
 
#define MEMTYPE_PCACHE   0x08 /* Page cache allocations */
 
#define SQLITE_USE_URI   0
 
#define SQLITE_ALLOW_COVERING_INDEX_SCAN   1
 
#define SQLITE_SORTER_PMASZ   250
 
#define CTIMEOPT_VAL_(opt)   #opt
 
#define CTIMEOPT_VAL(opt)   CTIMEOPT_VAL_(opt)
 
#define _VDBEINT_H_
 
#define SQLITE_MAX_SCHEMA_RETRY   50
 
#define VdbeFrameMem(p)   ((Mem *)&((u8 *)p)[ROUND8(sizeof(VdbeFrame))])
 
#define CACHE_STALE   0
 
#define MEM_Null   0x0001 /* Value is NULL */
 
#define MEM_Str   0x0002 /* Value is a string */
 
#define MEM_Int   0x0004 /* Value is an integer */
 
#define MEM_Real   0x0008 /* Value is a real number */
 
#define MEM_Blob   0x0010 /* Value is a BLOB */
 
#define MEM_AffMask   0x001f /* Mask of affinity bits */
 
#define MEM_RowSet   0x0020 /* Value is a RowSet object */
 
#define MEM_Frame   0x0040 /* Value is a VdbeFrame object */
 
#define MEM_Undefined   0x0080 /* Value is undefined */
 
#define MEM_Cleared   0x0100 /* NULL set by OP_Null, not from data */
 
#define MEM_TypeMask   0x01ff /* Mask of type bits */
 
#define MEM_Term   0x0200 /* String rep is nul terminated */
 
#define MEM_Dyn   0x0400 /* Need to call Mem.xDel() on Mem.z */
 
#define MEM_Static   0x0800 /* Mem.z points to a static string */
 
#define MEM_Ephem   0x1000 /* Mem.z points to an ephemeral string */
 
#define MEM_Agg   0x2000 /* Mem.z points to an agg function context */
 
#define MEM_Zero   0x4000 /* Mem.i contains count of 0s appended to blob */
 
#define MemSetTypeFlag(p, f)   ((p)->flags = ((p)->flags&~(MEM_TypeMask|MEM_Zero))|f)
 
#define VDBE_MAGIC_INIT   0x26bceaa5 /* Building a VDBE program */
 
#define VDBE_MAGIC_RUN   0xbdf20da3 /* VDBE is ready to execute */
 
#define VDBE_MAGIC_HALT   0x519c2973 /* VDBE has completed execution */
 
#define VDBE_MAGIC_DEAD   0xb606c3c8 /* The VDBE has been deallocated */
 
#define VdbeMemDynamic(X)   (((X)->flags&(MEM_Agg|MEM_Dyn|MEM_RowSet|MEM_Frame))!=0)
 
#define ExpandBlob(P)   (((P)->flags&MEM_Zero)?sqlite3VdbeMemExpandBlob(P):0)
 
#define wsdStatInit
 
#define wsdStat   sqlite3Stat
 
#define _SQLITE_OS_C_   1
 
#define DO_OS_MALLOC_TEST(x)
 
#define vfsList   GLOBAL(sqlite3_vfs *, vfsList)
 
#define wsdHooksInit
 
#define wsdHooks   sqlite3Hooks
 
#define SQLITE_MALLOC(x)   malloc(x)
 
#define SQLITE_FREE(x)   free(x)
 
#define SQLITE_REALLOC(x, y)   realloc((x),(y))
 
#define SQLITE_MUTEX_NREF   0
 
#define SQLITE3_MUTEX_INITIALIZER   { PTHREAD_MUTEX_INITIALIZER }
 
#define mem0   GLOBAL(struct Mem0Global, mem0)
 
#define etRADIX   1 /* Integer types. %d, %x, %o, and so forth */
 
#define etFLOAT   2 /* Floating point. %f */
 
#define etEXP   3 /* Exponentional notation. %e and %E */
 
#define etGENERIC   4 /* Floating or exponential, depending on exponent. %g */
 
#define etSIZE   5 /* Return number of characters processed so far. %n */
 
#define etSTRING   6 /* Strings. %s */
 
#define etDYNSTRING   7 /* Dynamically allocated strings. %z */
 
#define etPERCENT   8 /* Percent symbol. %% */
 
#define etCHARX   9 /* Characters. %c */
 
#define etSQLESCAPE   10 /* Strings with '\'' doubled. %q */
 
#define etSQLESCAPE2
 
#define etTOKEN   12 /* a pointer to a Token structure */
 
#define etSRCLIST   13 /* a pointer to a SrcList */
 
#define etPOINTER   14 /* The %p conversion */
 
#define etSQLESCAPE3   15 /* %w -> Strings with '\"' doubled */
 
#define etORDINAL   16 /* %r -> 1st, 2nd, 3rd, 4th, etc. English only */
 
#define etINVALID   0 /* Any unrecognized conversion type */
 
#define FLAG_SIGNED   1 /* True if the value to convert is signed */
 
#define FLAG_INTERN   2 /* True if for internal use only */
 
#define FLAG_STRING   4 /* Allow infinity precision */
 
#define SQLITE_PRINT_BUF_SIZE   70
 
#define etBUFSIZE   SQLITE_PRINT_BUF_SIZE /* Size of the output buffer */
 
#define wsdPrng   sqlite3Prng
 
#define SQLITE_THREADS_IMPLEMENTED   1 /* Prevent the single-thread code below */
 
#define WRITE_UTF8(zOut, c)
 
#define WRITE_UTF16LE(zOut, c)
 
#define WRITE_UTF16BE(zOut, c)
 
#define READ_UTF16LE(zIn, TERM, c)
 
#define READ_UTF16BE(zIn, TERM, c)
 
#define READ_UTF8(zIn, zTerm, c)
 
#define UpperToLower   sqlite3UpperToLower
 
#define SLOT_2_0   0x001fc07f
 
#define SLOT_4_2_0   0xf01fc07f
 
#define TWOPOWER32   (((i64)1)<<32)
 
#define TWOPOWER31   (((i64)1)<<31)
 
#define OpHelp(X)
 
#define SQLITE_ENABLE_LOCKING_STYLE   0
 
#define SQLITE_FSFLAGS_IS_MSDOS   0x1
 
#define SQLITE_UNIX_THREADS   1
 
#define SQLITE_DEFAULT_FILE_PERMISSIONS   0644
 
#define SQLITE_DEFAULT_PROXYDIR_PERMISSIONS   0755
 
#define MAX_PATHNAME   512
 
#define osGetpid(X)   (pid_t)getpid()
 
#define IS_LOCK_ERROR(x)   ((x != SQLITE_OK) && (x != SQLITE_BUSY))
 
#define UNIXFILE_EXCL   0x01 /* Connections from one process only */
 
#define UNIXFILE_RDONLY   0x02 /* Connection is read only */
 
#define UNIXFILE_PERSIST_WAL   0x04 /* Persistent WAL mode */
 
#define UNIXFILE_DIRSYNC   0x08 /* Directory sync needed */
 
#define UNIXFILE_PSOW   0x10 /* SQLITE_IOCAP_POWERSAFE_OVERWRITE */
 
#define UNIXFILE_DELETE   0x20 /* Delete on close */
 
#define UNIXFILE_URI   0x40 /* Filename might have query parameters */
 
#define UNIXFILE_NOLOCK   0x80 /* Do no file locking */
 
#define UNIXFILE_WARNED   0x0100 /* verifyDbFile() warnings issued */
 
#define UNIXFILE_BLOCK   0x0200 /* Next SHM lock might block */
 
#define _OS_COMMON_H_
 
#define OSTRACE(X)
 
#define TIMER_START
 
#define TIMER_END
 
#define TIMER_ELAPSED   ((sqlite_uint64)0)
 
#define SimulateIOErrorBenign(X)
 
#define SimulateIOError(A)
 
#define SimulateDiskfullError(A)
 
#define OpenCounter(X)
 
#define O_LARGEFILE   0
 
#define O_NOFOLLOW   0
 
#define O_BINARY   0
 
#define threadid   pthread_self()
 
#define HAVE_MREMAP   0
 
#define osOpen   ((int(*)(const char*,int,int))aSyscall[0].pCurrent)
 
#define osClose   ((int(*)(int))aSyscall[1].pCurrent)
 
#define osAccess   ((int(*)(const char*,int))aSyscall[2].pCurrent)
 
#define osGetcwd   ((char*(*)(char*,size_t))aSyscall[3].pCurrent)
 
#define osStat   ((int(*)(const char*,struct stat*))aSyscall[4].pCurrent)
 
#define osFstat   ((int(*)(int,struct stat*))aSyscall[5].pCurrent)
 
#define osFtruncate   ((int(*)(int,off_t))aSyscall[6].pCurrent)
 
#define osFcntl   ((int(*)(int,int,...))aSyscall[7].pCurrent)
 
#define osRead   ((ssize_t(*)(int,void*,size_t))aSyscall[8].pCurrent)
 
#define osPread   ((ssize_t(*)(int,void*,size_t,off_t))aSyscall[9].pCurrent)
 
#define osPread64   ((ssize_t(*)(int,void*,size_t,off_t))aSyscall[10].pCurrent)
 
#define osWrite   ((ssize_t(*)(int,const void*,size_t))aSyscall[11].pCurrent)
 
#define osPwrite
 
#define osPwrite64
 
#define osFchmod   ((int(*)(int,mode_t))aSyscall[14].pCurrent)
 
#define osFallocate   ((int(*)(int,off_t,off_t))aSyscall[15].pCurrent)
 
#define osUnlink   ((int(*)(const char*))aSyscall[16].pCurrent)
 
#define osOpenDirectory   ((int(*)(const char*,int*))aSyscall[17].pCurrent)
 
#define osMkdir   ((int(*)(const char*,mode_t))aSyscall[18].pCurrent)
 
#define osRmdir   ((int(*)(const char*))aSyscall[19].pCurrent)
 
#define osFchown   ((int(*)(int,uid_t,gid_t))aSyscall[20].pCurrent)
 
#define osMmap   ((void*(*)(void*,size_t,int,int,int,off_t))aSyscall[21].pCurrent)
 
#define osMunmap   ((void*(*)(void*,size_t))aSyscall[22].pCurrent)
 
#define osMremap   ((void*(*)(void*,size_t,size_t,int,...))aSyscall[23].pCurrent)
 
#define osGetpagesize   ((int(*)(void))aSyscall[24].pCurrent)
 
#define SQLITE_MINIMUM_FILE_DESCRIPTOR   3
 
#define unixLogError(a, b, c)   unixLogErrorAtLine(a,b,c,__LINE__)
 
#define DOTLOCK_SUFFIX   ".lock"
 
#define fdatasync   fsync
 
#define HAVE_FULLFSYNC   0
 
#define UNIX_SHM_BASE   ((22+SQLITE_SHM_NLOCK)*4) /* first lock byte */
 
#define UNIX_SHM_DMS   (UNIX_SHM_BASE+SQLITE_SHM_NLOCK) /* deadman switch */
 
#define IOMETHODS(FINDER, METHOD, VERSION, CLOSE, LOCK, UNLOCK, CKLOCK, SHMMAP)
 
#define UNIXVFS(VFSNAME, FINDER)
 
#define BITVEC_SZ   512
 
#define BITVEC_USIZE   (((BITVEC_SZ-(3*sizeof(u32)))/sizeof(Bitvec*))*sizeof(Bitvec*))
 
#define BITVEC_TELEM   u8
 
#define BITVEC_SZELEM   8
 
#define BITVEC_NELEM   (BITVEC_USIZE/sizeof(BITVEC_TELEM))
 
#define BITVEC_NBIT   (BITVEC_NELEM*BITVEC_SZELEM)
 
#define BITVEC_NINT   (BITVEC_USIZE/sizeof(u32))
 
#define BITVEC_MXHASH   (BITVEC_NINT/2)
 
#define BITVEC_HASH(X)   (((X)*1)%BITVEC_NINT)
 
#define BITVEC_NPTR   (BITVEC_USIZE/sizeof(Bitvec *))
 
#define SETBIT(V, I)   V[I>>3] |= (1<<(I&7))
 
#define CLEARBIT(V, I)   V[I>>3] &= ~(1<<(I&7))
 
#define TESTBIT(V, I)   (V[I>>3]&(1<<(I&7)))!=0
 
#define PCACHE_DIRTYLIST_REMOVE   1 /* Remove pPage from dirty list */
 
#define PCACHE_DIRTYLIST_ADD   2 /* Add pPage to the dirty list */
 
#define PCACHE_DIRTYLIST_FRONT   3 /* Move pPage to the front of the list */
 
#define N_SORT_BUCKET   32
 
#define pcache1   (GLOBAL(struct PCacheGlobal, pcache1_g))
 
#define pcache1EnterMutex(X)   sqlite3_mutex_enter((X)->mutex)
 
#define pcache1LeaveMutex(X)   sqlite3_mutex_leave((X)->mutex)
 
#define ROWSET_ALLOCATION_SIZE   1024
 
#define ROWSET_ENTRY_PER_CHUNK   ((ROWSET_ALLOCATION_SIZE-8)/sizeof(struct RowSetEntry))
 
#define ROWSET_SORTED   0x01 /* True if RowSet.pEntry is sorted */
 
#define ROWSET_NEXT   0x02 /* True if sqlite3RowSetNext() has been called */
 
#define _WAL_H_
 
#define WAL_SYNC_TRANSACTIONS   0x20 /* Sync at the end of each transaction */
 
#define SQLITE_SYNC_MASK   0x13 /* Mask off the SQLITE_SYNC_* values */
 
#define WAL_SAVEPOINT_NDATA   4
 
#define PAGERTRACE(X)
 
#define PAGERID(p)   ((int)(p->fd))
 
#define FILEHANDLEID(fd)   ((int)fd)
 
#define PAGER_OPEN   0
 
#define PAGER_READER   1
 
#define PAGER_WRITER_LOCKED   2
 
#define PAGER_WRITER_CACHEMOD   3
 
#define PAGER_WRITER_DBMOD   4
 
#define PAGER_WRITER_FINISHED   5
 
#define PAGER_ERROR   6
 
#define UNKNOWN_LOCK   (EXCLUSIVE_LOCK+1)
 
#define CODEC1(P, D, N, X, E)   /* NO-OP */
 
#define CODEC2(P, D, N, X, E, O)   O=(char*)D
 
#define MAX_SECTOR_SIZE   0x10000
 
#define SPILLFLAG_OFF   0x01 /* Never spill cache. Set via pragma */
 
#define SPILLFLAG_ROLLBACK   0x02 /* Current rolling back, so do not spill */
 
#define SPILLFLAG_NOSYNC   0x04 /* Spill is ok, but do not sync */
 
#define PAGER_STAT_HIT   0
 
#define PAGER_STAT_MISS   1
 
#define PAGER_STAT_WRITE   2
 
#define PAGER_INCR(v)
 
#define JOURNAL_PG_SZ(pPager)   ((pPager->pageSize) + 8)
 
#define JOURNAL_HDR_SZ(pPager)   (pPager->sectorSize)
 
#define MEMDB   pPager->memDb
 
#define USEFETCH(x)   0
 
#define PAGER_MAX_PGNO   2147483647
 
#define isOpen(pFd)   ((pFd)->pMethods)
 
#define put32bits(A, B)   sqlite3Put4byte((u8*)A,B)
 
#define pager_datahash(X, Y)   0
 
#define pager_pagehash(X)   0
 
#define pager_set_pagehash(X)
 
#define CHECK_PAGE(x)
 
#define pagerReportSize(X)   /* No-op if we do not support a codec */
 
#define disable_simulated_io_errors()
 
#define enable_simulated_io_errors()
 
#define assertTruncateConstraint(pPager)
 
#define DIRECT_MODE   0
 
#define WALTRACE(X)
 
#define WAL_MAX_VERSION   3007000
 
#define WALINDEX_MAX_VERSION   3007000
 
#define WAL_WRITE_LOCK   0
 
#define WAL_ALL_BUT_WRITE   1
 
#define WAL_CKPT_LOCK   1
 
#define WAL_RECOVER_LOCK   2
 
#define WAL_READ_LOCK(I)   (3+(I))
 
#define WAL_NREADER   (SQLITE_SHM_NLOCK-3)
 
#define READMARK_NOT_USED   0xffffffff
 
#define WALINDEX_LOCK_OFFSET   (sizeof(WalIndexHdr)*2 + sizeof(WalCkptInfo))
 
#define WALINDEX_LOCK_RESERVED   16
 
#define WALINDEX_HDR_SIZE   (WALINDEX_LOCK_OFFSET+WALINDEX_LOCK_RESERVED)
 
#define WAL_FRAME_HDRSIZE   24
 
#define WAL_HDRSIZE   32
 
#define WAL_MAGIC   0x377f0682
 
#define walFrameOffset(iFrame, szPage)
 
#define WAL_NORMAL_MODE   0
 
#define WAL_EXCLUSIVE_MODE   1
 
#define WAL_HEAPMEMORY_MODE   2
 
#define WAL_RDWR   0 /* Normal read/write connection */
 
#define WAL_RDONLY   1 /* The WAL file is readonly */
 
#define WAL_SHM_RDONLY   2 /* The SHM file is readonly */
 
#define HASHTABLE_NPAGE   4096 /* Must be power of 2 */
 
#define HASHTABLE_HASH_1   383 /* Should be prime */
 
#define HASHTABLE_NSLOT   (HASHTABLE_NPAGE*2) /* Must be a power of 2 */
 
#define HASHTABLE_NPAGE_ONE   (HASHTABLE_NPAGE - (WALINDEX_HDR_SIZE/sizeof(u32)))
 
#define WALINDEX_PGSZ
 
#define BYTESWAP32(x)
 
#define WAL_RETRY   (-1)
 
#define MX_CELL_SIZE(pBt)   ((int)(pBt->pageSize-8))
 
#define MX_CELL(pBt)   ((pBt->pageSize-8)/6)
 
#define SQLITE_FILE_HEADER   "SQLite format 3"
 
#define PTF_INTKEY   0x01
 
#define PTF_ZERODATA   0x02
 
#define PTF_LEAFDATA   0x04
 
#define PTF_LEAF   0x08
 
#define EXTRA_SIZE   sizeof(MemPage)
 
#define READ_LOCK   1
 
#define WRITE_LOCK   2
 
#define TRANS_NONE   0
 
#define TRANS_READ   1
 
#define TRANS_WRITE   2
 
#define BTS_READ_ONLY   0x0001 /* Underlying file is readonly */
 
#define BTS_PAGESIZE_FIXED   0x0002 /* Page size can no longer be changed */
 
#define BTS_SECURE_DELETE   0x0004 /* PRAGMA secure_delete is enabled */
 
#define BTS_INITIALLY_EMPTY   0x0008 /* Database was empty at trans start */
 
#define BTS_NO_WAL   0x0010 /* Do not open write-ahead-log files */
 
#define BTS_EXCLUSIVE   0x0020 /* pWriter has an exclusive lock */
 
#define BTS_PENDING   0x0040 /* Waiting for read-locks to clear */
 
#define BTCURSOR_MAX_DEPTH   20
 
#define BTCF_WriteFlag   0x01 /* True if a write cursor */
 
#define BTCF_ValidNKey   0x02 /* True if info.nKey is valid */
 
#define BTCF_ValidOvfl   0x04 /* True if aOverflow is valid */
 
#define BTCF_AtLast   0x08 /* Cursor is pointing ot the last entry */
 
#define BTCF_Incrblob   0x10 /* True if an incremental I/O handle */
 
#define CURSOR_INVALID   0
 
#define CURSOR_VALID   1
 
#define CURSOR_SKIPNEXT   2
 
#define CURSOR_REQUIRESEEK   3
 
#define CURSOR_FAULT   4
 
#define PENDING_BYTE_PAGE(pBt)   PAGER_MJ_PGNO(pBt)
 
#define PTRMAP_PAGENO(pBt, pgno)   ptrmapPageno(pBt, pgno)
 
#define PTRMAP_PTROFFSET(pgptrmap, pgno)   (5*(pgno-pgptrmap-1))
 
#define PTRMAP_ISPAGE(pBt, pgno)   (PTRMAP_PAGENO((pBt),(pgno))==(pgno))
 
#define PTRMAP_ROOTPAGE   1
 
#define PTRMAP_FREEPAGE   2
 
#define PTRMAP_OVERFLOW1   3
 
#define PTRMAP_OVERFLOW2   4
 
#define PTRMAP_BTREE   5
 
#define btreeIntegrity(p)
 
#define ISAUTOVACUUM   (pBt->autoVacuum)
 
#define get2byte(x)   ((x)[0]<<8 | (x)[1])
 
#define put2byte(p, v)   ((p)[0] = (u8)((v)>>8), (p)[1] = (u8)(v))
 
#define get4byte   sqlite3Get4byte
 
#define put4byte   sqlite3Put4byte
 
#define TRACE(X)
 
#define get2byteNotZero(X)   (((((int)get2byte(X))-1)&0xffff)+1)
 
#define BTALLOC_ANY   0 /* Allocate any page */
 
#define BTALLOC_EXACT   1 /* Allocate exact page if possible */
 
#define BTALLOC_LE   2 /* Allocate any page <= the parameter */
 
#define IfNotOmitAV(expr)   (expr)
 
#define invalidateOverflowCache(pCur)   (pCur->curFlags &= ~BTCF_ValidOvfl)
 
#define restoreCursorPosition(p)
 
#define findCell(P, I)   ((P)->aData + ((P)->maskPage & get2byte(&(P)->aCellIdx[2*(I)])))
 
#define findCellv2(D, M, O, I)   (D+(M&get2byte(D+(O+2*(I)))))
 
#define assertCellInfo(x)
 
#define getCellInfo(pCur)
 
#define assertParentIndex(x, y, z)
 
#define NN   1 /* Number of neighbors on either side of pPage */
 
#define NB   (NN*2+1) /* Total pages involved in the balance */
 
#define MEMCELLSIZE   offsetof(Mem,zMalloc)
 
#define valueFromFunction(a, b, c, d, e, f)   SQLITE_OK
 
#define checkActiveVdbeCnt(x)
 
#define vdbeInvokeSqllog(x)
 
#define MAX_6BYTE   ((((i64)0x00008000)<<32)-1)
 
#define swapMixedEndianFloat(X)
 
#define ONE_BYTE_INT(x)   ((i8)(x)[0])
 
#define TWO_BYTE_INT(x)   (256*(i8)((x)[0])|(x)[1])
 
#define THREE_BYTE_INT(x)   (65536*(i8)((x)[0])|((x)[1]<<8)|(x)[2])
 
#define FOUR_BYTE_UINT(x)   (((u32)(x)[0]<<24)|((x)[1]<<16)|((x)[2]<<8)|(x)[3])
 
#define FOUR_BYTE_INT(x)   (16777216*(i8)((x)[0])|((x)[1]<<16)|((x)[2]<<8)|(x)[3])
 
#define vdbeAssertFieldCountWithinLimits(A, B, C)
 
#define memAboutToChange(P, M)
 
#define UPDATE_MAX_BLOBSIZE(P)
 
#define VdbeBranchTaken(I, M)
 
#define Stringify(P, enc)
 
#define Deephemeralize(P)
 
#define isSorter(x)   ((x)->pSorter!=0)
 
#define REGISTER_TRACE(R, M)
 
#define MAX_ROWID   (i64)( (((u64)0x7fffffff)<<32) | (u64)0xffffffff )
 
#define SQLITE_MAX_PMASZ   (1<<29)
 
#define SORTER_TYPE_INTEGER   0x01
 
#define SORTER_TYPE_TEXT   0x02
 
#define SRVAL(p)   ((void*)((SorterRecord*)(p) + 1))
 
#define SORTER_MAX_MERGE_COUNT   16
 
#define vdbeSorterWorkDebug(x, y)
 
#define vdbeSorterRewindDebug(y)
 
#define vdbeSorterPopulateDebug(x, y)
 
#define vdbeSorterBlockDebug(x, y, z)
 
#define vdbeSorterExtendFile(x, y, z)
 
#define INCRINIT_NORMAL   0
 
#define INCRINIT_TASK   1
 
#define INCRINIT_ROOT   2
 
#define JOURNAL_CHUNKSIZE   ((int)(1024-sizeof(FileChunk*)))
 
#define IsStat4   0
 
#define IsStat3   0
 
#define SQLITE_STAT4_SAMPLES   1
 
#define IsStat34   (IsStat3+IsStat4) /* 1 for STAT3 or STAT4. 0 otherwise */
 
#define STAT_GET_STAT1   0 /* "stat" column of stat1 table */
 
#define STAT_GET_ROWID   1 /* "rowid" column of stat[34] entry */
 
#define STAT_GET_NEQ   2 /* "neq" column of stat[34] entry */
 
#define STAT_GET_NLT   3 /* "nlt" column of stat[34] entry */
 
#define STAT_GET_NDLT   4 /* "ndlt" column of stat[34] entry */
 
#define SAVE_SZ   (sizeof(Parse) - offsetof(Parse,nVar))
 
#define STRICMP(x, y)
 
#define FUNC_PERFECT_MATCH   6 /* The score for a perfect match */
 
#define noopFunc   versionFunc /* Substitute function - never called */
 
#define GlobUpperToLower(A)   if( A<=0x7f ){ A = sqlite3UpperToLower[A]; }
 
#define GlobUpperToLowerAscii(A)   A = sqlite3UpperToLower[A]
 
#define COLUMN_MASK(x)   (((x)>31) ? 0xffffffff : ((u32)1<<(x)))
 
#define _SQLITE3EXT_H_
 
#define SQLITE_EXTENSION_INIT1   /*no-op*/
 
#define SQLITE_EXTENSION_INIT2(v)   (void)v; /* unused parameter */
 
#define SQLITE_EXTENSION_INIT3   /*no-op*/
 
#define sqlite3_column_database_name   0
 
#define sqlite3_column_database_name16   0
 
#define sqlite3_column_table_name   0
 
#define sqlite3_column_table_name16   0
 
#define sqlite3_column_origin_name   0
 
#define sqlite3_column_origin_name16   0
 
#define wsdAutoextInit
 
#define wsdAutoext   sqlite3Autoext
 
#define PragTyp_HEADER_VALUE   0
 
#define PragTyp_AUTO_VACUUM   1
 
#define PragTyp_FLAG   2
 
#define PragTyp_BUSY_TIMEOUT   3
 
#define PragTyp_CACHE_SIZE   4
 
#define PragTyp_CASE_SENSITIVE_LIKE   5
 
#define PragTyp_COLLATION_LIST   6
 
#define PragTyp_COMPILE_OPTIONS   7
 
#define PragTyp_DATA_STORE_DIRECTORY   8
 
#define PragTyp_DATABASE_LIST   9
 
#define PragTyp_DEFAULT_CACHE_SIZE   10
 
#define PragTyp_ENCODING   11
 
#define PragTyp_FOREIGN_KEY_CHECK   12
 
#define PragTyp_FOREIGN_KEY_LIST   13
 
#define PragTyp_INCREMENTAL_VACUUM   14
 
#define PragTyp_INDEX_INFO   15
 
#define PragTyp_INDEX_LIST   16
 
#define PragTyp_INTEGRITY_CHECK   17
 
#define PragTyp_JOURNAL_MODE   18
 
#define PragTyp_JOURNAL_SIZE_LIMIT   19
 
#define PragTyp_LOCK_PROXY_FILE   20
 
#define PragTyp_LOCKING_MODE   21
 
#define PragTyp_PAGE_COUNT   22
 
#define PragTyp_MMAP_SIZE   23
 
#define PragTyp_PAGE_SIZE   24
 
#define PragTyp_SECURE_DELETE   25
 
#define PragTyp_SHRINK_MEMORY   26
 
#define PragTyp_SOFT_HEAP_LIMIT   27
 
#define PragTyp_STATS   28
 
#define PragTyp_SYNCHRONOUS   29
 
#define PragTyp_TABLE_INFO   30
 
#define PragTyp_TEMP_STORE   31
 
#define PragTyp_TEMP_STORE_DIRECTORY   32
 
#define PragTyp_THREADS   33
 
#define PragTyp_WAL_AUTOCHECKPOINT   34
 
#define PragTyp_WAL_CHECKPOINT   35
 
#define PragTyp_ACTIVATE_EXTENSIONS   36
 
#define PragTyp_HEXKEY   37
 
#define PragTyp_KEY   38
 
#define PragTyp_REKEY   39
 
#define PragTyp_LOCK_STATUS   40
 
#define PragTyp_PARSER_TRACE   41
 
#define PragFlag_NeedSchema   0x01
 
#define PragFlag_ReadOnly   0x02
 
#define SQLITE_INTEGRITY_CHECK_ERROR_MAX   100
 
#define SELECTTRACE(K, P, S, X)
 
#define SORTFLAG_UseSorter   0x01 /* Use SorterOpen instead of OpenEphemeral */
 
#define explainSetInteger(a, b)   a = b
 
#define columnType(A, B, C, D, E, F)   columnTypeImpl(A,B,F)
 
#define WHERETRACE(K, X)
 
#define WHERE_LOOP_XFER_SZ   offsetof(WhereLoop,nLSlot)
 
#define N_OR_COST   3
 
#define TERM_DYNAMIC   0x01 /* Need to call sqlite3ExprDelete(db, pExpr) */
 
#define TERM_VIRTUAL   0x02 /* Added by the optimizer. Do not code */
 
#define TERM_CODED   0x04 /* This term is already coded */
 
#define TERM_COPIED   0x08 /* Has a child */
 
#define TERM_ORINFO   0x10 /* Need to free the WhereTerm.u.pOrInfo object */
 
#define TERM_ANDINFO   0x20 /* Need to free the WhereTerm.u.pAndInfo obj */
 
#define TERM_OR_OK   0x40 /* Used during OR-clause processing */
 
#define TERM_VNULL   0x00 /* Disabled if not using stat3 */
 
#define TERM_LIKEOPT   0x100 /* Virtual terms from the LIKE optimization */
 
#define TERM_LIKECOND   0x200 /* Conditionally this LIKE operator term */
 
#define TERM_LIKE   0x400 /* The original LIKE operator */
 
#define WO_IN   0x001
 
#define WO_EQ   0x002
 
#define WO_LT   (WO_EQ<<(TK_LT-TK_EQ))
 
#define WO_LE   (WO_EQ<<(TK_LE-TK_EQ))
 
#define WO_GT   (WO_EQ<<(TK_GT-TK_EQ))
 
#define WO_GE   (WO_EQ<<(TK_GE-TK_EQ))
 
#define WO_MATCH   0x040
 
#define WO_ISNULL   0x080
 
#define WO_OR   0x100 /* Two or more OR-connected terms */
 
#define WO_AND   0x200 /* Two or more AND-connected terms */
 
#define WO_EQUIV   0x400 /* Of the form A==B, both columns */
 
#define WO_NOOP   0x800 /* This term does not restrict search space */
 
#define WO_ALL   0xfff /* Mask of all possible WO_* values */
 
#define WO_SINGLE   0x0ff /* Mask of all non-compound WO_* values */
 
#define WHERE_COLUMN_EQ   0x00000001 /* x=EXPR */
 
#define WHERE_COLUMN_RANGE   0x00000002 /* x<EXPR and/or x>EXPR */
 
#define WHERE_COLUMN_IN   0x00000004 /* x IN (...) */
 
#define WHERE_COLUMN_NULL   0x00000008 /* x IS NULL */
 
#define WHERE_CONSTRAINT   0x0000000f /* Any of the WHERE_COLUMN_xxx values */
 
#define WHERE_TOP_LIMIT   0x00000010 /* x<EXPR or x<=EXPR constraint */
 
#define WHERE_BTM_LIMIT   0x00000020 /* x>EXPR or x>=EXPR constraint */
 
#define WHERE_BOTH_LIMIT   0x00000030 /* Both x>EXPR and x<EXPR */
 
#define WHERE_IDX_ONLY   0x00000040 /* Use index only - omit table */
 
#define WHERE_IPK   0x00000100 /* x is the INTEGER PRIMARY KEY */
 
#define WHERE_INDEXED   0x00000200 /* WhereLoop.u.btree.pIndex is valid */
 
#define WHERE_VIRTUALTABLE   0x00000400 /* WhereLoop.u.vtab is valid */
 
#define WHERE_IN_ABLE   0x00000800 /* Able to support an IN operator */
 
#define WHERE_ONEROW   0x00001000 /* Selects no more than one row */
 
#define WHERE_MULTI_OR   0x00002000 /* OR using multiple indices */
 
#define WHERE_AUTO_INDEX   0x00004000 /* Uses an ephemeral index */
 
#define WHERE_SKIPSCAN   0x00008000 /* Uses the skip-scan algorithm */
 
#define WHERE_UNQ_WANTED   0x00010000 /* WHERE_ONEROW would have been helpful*/
 
#define WHERE_PARTIALIDX   0x00020000 /* The automatic index is partial */
 
#define initMaskSet(P)   (P)->n=0
 
#define TRACE_IDX_INPUTS(A)
 
#define TRACE_IDX_OUTPUTS(A)
 
#define addScanStatus(a, b, c, d)   ((void)d)
 
#define ApplyCostMultiplier(C, T)
 
#define YYNOERRORRECOVERY   1
 
#define yytestcase(X)   testcase(X)
 
#define INTERFACE   1
 
#define YYCODETYPE   unsigned char
 
#define YYNOCODE   254
 
#define YYACTIONTYPE   unsigned short int
 
#define YYWILDCARD   70
 
#define sqlite3ParserTOKENTYPE   Token
 
#define YYSTACKDEPTH   100
 
#define sqlite3ParserARG_SDECL   Parse *pParse;
 
#define sqlite3ParserARG_PDECL   ,Parse *pParse
 
#define sqlite3ParserARG_FETCH   Parse *pParse = yypParser->pParse
 
#define sqlite3ParserARG_STORE   yypParser->pParse = pParse
 
#define YYNSTATE   642
 
#define YYNRULE   327
 
#define YYFALLBACK   1
 
#define YY_NO_ACTION   (YYNSTATE+YYNRULE+2)
 
#define YY_ACCEPT_ACTION   (YYNSTATE+YYNRULE+1)
 
#define YY_ERROR_ACTION   (YYNSTATE+YYNRULE)
 
#define YY_ACTTAB_COUNT   (1497)
 
#define YY_SHIFT_USE_DFLT   (-86)
 
#define YY_SHIFT_COUNT   (429)
 
#define YY_SHIFT_MIN   (-85)
 
#define YY_SHIFT_MAX   (1383)
 
#define YY_REDUCE_USE_DFLT   (-110)
 
#define YY_REDUCE_COUNT   (305)
 
#define YY_REDUCE_MIN   (-109)
 
#define YY_REDUCE_MAX   (1323)
 
#define TOKEN   (yyminor.yy0)
 
#define charMap(X)   sqlite3UpperToLower[(unsigned char)X]
 
#define SQLITE_N_KEYWORD   124
 
#define IdChar(C)   ((sqlite3CtypeMap[(unsigned char)C]&0x46)!=0)
 
#define tkSEMI   0
 
#define tkWS   1
 
#define tkOTHER   2
 
#define tkEXPLAIN   3
 
#define tkCREATE   4
 
#define tkTEMP   5
 
#define tkTRIGGER   6
 
#define tkEND   7
 
#define _FTSINT_H
 

Typedefs

typedef long long int sqlite_int64
 
typedef unsigned long long int sqlite_uint64
 
typedef sqlite_int64 sqlite3_int64
 
typedef sqlite_uint64 sqlite3_uint64
 
typedef int(* sqlite3_callback) (void *, int, char **, char **)
 
typedef void(* sqlite3_syscall_ptr) (void)
 
typedef struct sqlite3_stmt sqlite3_stmt
 
typedef void(* sqlite3_destructor_type) (void *)
 
typedef struct sqlite3_blob sqlite3_blob
 
typedef struct sqlite3_pcache sqlite3_pcache
 
typedef double sqlite3_rtree_dbl
 
typedef sqlite_int64 i64
 
typedef sqlite_uint64 u64
 
typedef UINT32_TYPE u32
 
typedef UINT16_TYPE u16
 
typedef INT16_TYPE i16
 
typedef UINT8_TYPE u8
 
typedef INT8_TYPE i8
 
typedef u32 tRowcnt
 
typedef INT16_TYPE LogEst
 
typedef struct KeyClass KeyClass
 
typedef struct TreeView TreeView
 
typedef int(* RecordCompare) (int, const void *, UnpackedRecord *)
 
typedef u32 Pgno
 
typedef int(* sqlite3_xauth) (void *, int, const char *, const char *, const char *, const char *)
 
typedef i16 ynVar
 
typedef u64 Bitmask
 
typedef unsigned int yDbMask
 
typedef unsigned Bool
 
typedef unsigned bft
 
typedef unsigned char etByte
 
typedef u16 ht_slot
 
typedef int(* SorterCompare) (SortSubtask *, int *, const void *, int, const void *, int)
 

Functions

SQLITE_API const char *SQLITE_STDCALL sqlite3_libversion (void)
 
SQLITE_API const char *SQLITE_STDCALL sqlite3_sourceid (void)
 
SQLITE_API int SQLITE_STDCALL sqlite3_libversion_number (void)
 
SQLITE_API int SQLITE_STDCALL sqlite3_compileoption_used (const char *zOptName)
 
SQLITE_API const char *SQLITE_STDCALL sqlite3_compileoption_get (int N)
 
SQLITE_API int SQLITE_STDCALL sqlite3_threadsafe (void)
 
SQLITE_API int SQLITE_STDCALL sqlite3_close (sqlite3 *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_close_v2 (sqlite3 *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_exec (sqlite3 *, const char *sql, int(*callback)(void *, int, char **, char **), void *, char **errmsg)
 
SQLITE_API int SQLITE_STDCALL sqlite3_initialize (void)
 
SQLITE_API int SQLITE_STDCALL sqlite3_shutdown (void)
 
SQLITE_API int SQLITE_STDCALL sqlite3_os_init (void)
 
SQLITE_API int SQLITE_STDCALL sqlite3_os_end (void)
 
SQLITE_API int SQLITE_CDECL sqlite3_config (int,...)
 
SQLITE_API int SQLITE_CDECL sqlite3_db_config (sqlite3 *, int op,...)
 
SQLITE_API int SQLITE_STDCALL sqlite3_extended_result_codes (sqlite3 *, int onoff)
 
SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_last_insert_rowid (sqlite3 *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_changes (sqlite3 *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_total_changes (sqlite3 *)
 
SQLITE_API void SQLITE_STDCALL sqlite3_interrupt (sqlite3 *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_complete (const char *sql)
 
SQLITE_API int SQLITE_STDCALL sqlite3_complete16 (const void *sql)
 
SQLITE_API int SQLITE_STDCALL sqlite3_busy_handler (sqlite3 *, int(*)(void *, int), void *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_busy_timeout (sqlite3 *, int ms)
 
SQLITE_API int SQLITE_STDCALL sqlite3_get_table (sqlite3 *db, const char *zSql, char ***pazResult, int *pnRow, int *pnColumn, char **pzErrmsg)
 
SQLITE_API void SQLITE_STDCALL sqlite3_free_table (char **result)
 
SQLITE_API char *SQLITE_CDECL sqlite3_mprintf (const char *,...)
 
SQLITE_API char *SQLITE_STDCALL sqlite3_vmprintf (const char *, va_list)
 
SQLITE_API char *SQLITE_CDECL sqlite3_snprintf (int, char *, const char *,...)
 
SQLITE_API char *SQLITE_STDCALL sqlite3_vsnprintf (int, char *, const char *, va_list)
 
SQLITE_API void *SQLITE_STDCALL sqlite3_malloc (int)
 
SQLITE_API void *SQLITE_STDCALL sqlite3_malloc64 (sqlite3_uint64)
 
SQLITE_API void *SQLITE_STDCALL sqlite3_realloc (void *, int)
 
SQLITE_API void *SQLITE_STDCALL sqlite3_realloc64 (void *, sqlite3_uint64)
 
SQLITE_API void SQLITE_STDCALL sqlite3_free (void *)
 
SQLITE_API sqlite3_uint64 SQLITE_STDCALL sqlite3_msize (void *)
 
SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_memory_used (void)
 
SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_memory_highwater (int resetFlag)
 
SQLITE_API void SQLITE_STDCALL sqlite3_randomness (int N, void *P)
 
SQLITE_API int SQLITE_STDCALL sqlite3_set_authorizer (sqlite3 *, int(*xAuth)(void *, int, const char *, const char *, const char *, const char *), void *pUserData)
 
SQLITE_API void *SQLITE_STDCALL sqlite3_trace (sqlite3 *, void(*xTrace)(void *, const char *), void *)
 
SQLITE_API SQLITE_EXPERIMENTAL void *SQLITE_STDCALL sqlite3_profile (sqlite3 *, void(*xProfile)(void *, const char *, sqlite3_uint64), void *)
 
SQLITE_API void SQLITE_STDCALL sqlite3_progress_handler (sqlite3 *, int, int(*)(void *), void *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_open (const char *filename, sqlite3 **ppDb)
 
SQLITE_API int SQLITE_STDCALL sqlite3_open16 (const void *filename, sqlite3 **ppDb)
 
SQLITE_API int SQLITE_STDCALL sqlite3_open_v2 (const char *filename, sqlite3 **ppDb, int flags, const char *zVfs)
 
SQLITE_API const char *SQLITE_STDCALL sqlite3_uri_parameter (const char *zFilename, const char *zParam)
 
SQLITE_API int SQLITE_STDCALL sqlite3_uri_boolean (const char *zFile, const char *zParam, int bDefault)
 
SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_uri_int64 (const char *, const char *, sqlite3_int64)
 
SQLITE_API int SQLITE_STDCALL sqlite3_errcode (sqlite3 *db)
 
SQLITE_API int SQLITE_STDCALL sqlite3_extended_errcode (sqlite3 *db)
 
SQLITE_API const char *SQLITE_STDCALL sqlite3_errmsg (sqlite3 *)
 
SQLITE_API const void *SQLITE_STDCALL sqlite3_errmsg16 (sqlite3 *)
 
SQLITE_API const char *SQLITE_STDCALL sqlite3_errstr (int)
 
SQLITE_API int SQLITE_STDCALL sqlite3_limit (sqlite3 *, int id, int newVal)
 
SQLITE_API int SQLITE_STDCALL sqlite3_prepare (sqlite3 *db, const char *zSql, int nByte, sqlite3_stmt **ppStmt, const char **pzTail)
 
SQLITE_API int SQLITE_STDCALL sqlite3_prepare_v2 (sqlite3 *db, const char *zSql, int nByte, sqlite3_stmt **ppStmt, const char **pzTail)
 
SQLITE_API int SQLITE_STDCALL sqlite3_prepare16 (sqlite3 *db, const void *zSql, int nByte, sqlite3_stmt **ppStmt, const void **pzTail)
 
SQLITE_API int SQLITE_STDCALL sqlite3_prepare16_v2 (sqlite3 *db, const void *zSql, int nByte, sqlite3_stmt **ppStmt, const void **pzTail)
 
SQLITE_API const char *SQLITE_STDCALL sqlite3_sql (sqlite3_stmt *pStmt)
 
SQLITE_API int SQLITE_STDCALL sqlite3_stmt_readonly (sqlite3_stmt *pStmt)
 
SQLITE_API int SQLITE_STDCALL sqlite3_stmt_busy (sqlite3_stmt *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_bind_blob (sqlite3_stmt *, int, const void *, int n, void(*)(void *))
 
SQLITE_API int SQLITE_STDCALL sqlite3_bind_blob64 (sqlite3_stmt *, int, const void *, sqlite3_uint64, void(*)(void *))
 
SQLITE_API int SQLITE_STDCALL sqlite3_bind_double (sqlite3_stmt *, int, double)
 
SQLITE_API int SQLITE_STDCALL sqlite3_bind_int (sqlite3_stmt *, int, int)
 
SQLITE_API int SQLITE_STDCALL sqlite3_bind_int64 (sqlite3_stmt *, int, sqlite3_int64)
 
SQLITE_API int SQLITE_STDCALL sqlite3_bind_null (sqlite3_stmt *, int)
 
SQLITE_API int SQLITE_STDCALL sqlite3_bind_text (sqlite3_stmt *, int, const char *, int, void(*)(void *))
 
SQLITE_API int SQLITE_STDCALL sqlite3_bind_text16 (sqlite3_stmt *, int, const void *, int, void(*)(void *))
 
SQLITE_API int SQLITE_STDCALL sqlite3_bind_text64 (sqlite3_stmt *, int, const char *, sqlite3_uint64, void(*)(void *), unsigned char encoding)
 
SQLITE_API int SQLITE_STDCALL sqlite3_bind_value (sqlite3_stmt *, int, const sqlite3_value *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_bind_zeroblob (sqlite3_stmt *, int, int n)
 
SQLITE_API int SQLITE_STDCALL sqlite3_bind_parameter_count (sqlite3_stmt *)
 
SQLITE_API const char *SQLITE_STDCALL sqlite3_bind_parameter_name (sqlite3_stmt *, int)
 
SQLITE_API int SQLITE_STDCALL sqlite3_bind_parameter_index (sqlite3_stmt *, const char *zName)
 
SQLITE_API int SQLITE_STDCALL sqlite3_clear_bindings (sqlite3_stmt *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_column_count (sqlite3_stmt *pStmt)
 
SQLITE_API const char *SQLITE_STDCALL sqlite3_column_name (sqlite3_stmt *, int N)
 
SQLITE_API const void *SQLITE_STDCALL sqlite3_column_name16 (sqlite3_stmt *, int N)
 
SQLITE_API const char *SQLITE_STDCALL sqlite3_column_database_name (sqlite3_stmt *, int)
 
SQLITE_API const void *SQLITE_STDCALL sqlite3_column_database_name16 (sqlite3_stmt *, int)
 
SQLITE_API const char *SQLITE_STDCALL sqlite3_column_table_name (sqlite3_stmt *, int)
 
SQLITE_API const void *SQLITE_STDCALL sqlite3_column_table_name16 (sqlite3_stmt *, int)
 
SQLITE_API const char *SQLITE_STDCALL sqlite3_column_origin_name (sqlite3_stmt *, int)
 
SQLITE_API const void *SQLITE_STDCALL sqlite3_column_origin_name16 (sqlite3_stmt *, int)
 
SQLITE_API const char *SQLITE_STDCALL sqlite3_column_decltype (sqlite3_stmt *, int)
 
SQLITE_API const void *SQLITE_STDCALL sqlite3_column_decltype16 (sqlite3_stmt *, int)
 
SQLITE_API int SQLITE_STDCALL sqlite3_step (sqlite3_stmt *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_data_count (sqlite3_stmt *pStmt)
 
SQLITE_API const void *SQLITE_STDCALL sqlite3_column_blob (sqlite3_stmt *, int iCol)
 
SQLITE_API int SQLITE_STDCALL sqlite3_column_bytes (sqlite3_stmt *, int iCol)
 
SQLITE_API int SQLITE_STDCALL sqlite3_column_bytes16 (sqlite3_stmt *, int iCol)
 
SQLITE_API double SQLITE_STDCALL sqlite3_column_double (sqlite3_stmt *, int iCol)
 
SQLITE_API int SQLITE_STDCALL sqlite3_column_int (sqlite3_stmt *, int iCol)
 
SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_column_int64 (sqlite3_stmt *, int iCol)
 
SQLITE_API const unsigned char *SQLITE_STDCALL sqlite3_column_text (sqlite3_stmt *, int iCol)
 
SQLITE_API const void *SQLITE_STDCALL sqlite3_column_text16 (sqlite3_stmt *, int iCol)
 
SQLITE_API int SQLITE_STDCALL sqlite3_column_type (sqlite3_stmt *, int iCol)
 
SQLITE_API sqlite3_value *SQLITE_STDCALL sqlite3_column_value (sqlite3_stmt *, int iCol)
 
SQLITE_API int SQLITE_STDCALL sqlite3_finalize (sqlite3_stmt *pStmt)
 
SQLITE_API int SQLITE_STDCALL sqlite3_reset (sqlite3_stmt *pStmt)
 
SQLITE_API int SQLITE_STDCALL sqlite3_create_function (sqlite3 *db, const char *zFunctionName, int nArg, int eTextRep, void *pApp, void(*xFunc)(sqlite3_context *, int, sqlite3_value **), void(*xStep)(sqlite3_context *, int, sqlite3_value **), void(*xFinal)(sqlite3_context *))
 
SQLITE_API int SQLITE_STDCALL sqlite3_create_function16 (sqlite3 *db, const void *zFunctionName, int nArg, int eTextRep, void *pApp, void(*xFunc)(sqlite3_context *, int, sqlite3_value **), void(*xStep)(sqlite3_context *, int, sqlite3_value **), void(*xFinal)(sqlite3_context *))
 
SQLITE_API int SQLITE_STDCALL sqlite3_create_function_v2 (sqlite3 *db, const char *zFunctionName, int nArg, int eTextRep, void *pApp, void(*xFunc)(sqlite3_context *, int, sqlite3_value **), void(*xStep)(sqlite3_context *, int, sqlite3_value **), void(*xFinal)(sqlite3_context *), void(*xDestroy)(void *))
 
SQLITE_API SQLITE_DEPRECATED int SQLITE_STDCALL sqlite3_aggregate_count (sqlite3_context *)
 
SQLITE_API SQLITE_DEPRECATED int SQLITE_STDCALL sqlite3_expired (sqlite3_stmt *)
 
SQLITE_API SQLITE_DEPRECATED int SQLITE_STDCALL sqlite3_transfer_bindings (sqlite3_stmt *, sqlite3_stmt *)
 
SQLITE_API SQLITE_DEPRECATED int SQLITE_STDCALL sqlite3_global_recover (void)
 
SQLITE_API SQLITE_DEPRECATED void SQLITE_STDCALL sqlite3_thread_cleanup (void)
 
SQLITE_API SQLITE_DEPRECATED int SQLITE_STDCALL sqlite3_memory_alarm (void(*)(void *, sqlite3_int64, int), void *, sqlite3_int64)
 
SQLITE_API const void *SQLITE_STDCALL sqlite3_value_blob (sqlite3_value *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_value_bytes (sqlite3_value *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_value_bytes16 (sqlite3_value *)
 
SQLITE_API double SQLITE_STDCALL sqlite3_value_double (sqlite3_value *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_value_int (sqlite3_value *)
 
SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_value_int64 (sqlite3_value *)
 
SQLITE_API const unsigned char *SQLITE_STDCALL sqlite3_value_text (sqlite3_value *)
 
SQLITE_API const void *SQLITE_STDCALL sqlite3_value_text16 (sqlite3_value *)
 
SQLITE_API const void *SQLITE_STDCALL sqlite3_value_text16le (sqlite3_value *)
 
SQLITE_API const void *SQLITE_STDCALL sqlite3_value_text16be (sqlite3_value *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_value_type (sqlite3_value *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_value_numeric_type (sqlite3_value *)
 
SQLITE_API void *SQLITE_STDCALL sqlite3_aggregate_context (sqlite3_context *, int nBytes)
 
SQLITE_API void *SQLITE_STDCALL sqlite3_user_data (sqlite3_context *)
 
SQLITE_API sqlite3 *SQLITE_STDCALL sqlite3_context_db_handle (sqlite3_context *)
 
SQLITE_API void *SQLITE_STDCALL sqlite3_get_auxdata (sqlite3_context *, int N)
 
SQLITE_API void SQLITE_STDCALL sqlite3_set_auxdata (sqlite3_context *, int N, void *, void(*)(void *))
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_blob (sqlite3_context *, const void *, int, void(*)(void *))
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_blob64 (sqlite3_context *, const void *, sqlite3_uint64, void(*)(void *))
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_double (sqlite3_context *, double)
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_error (sqlite3_context *, const char *, int)
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_error16 (sqlite3_context *, const void *, int)
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_error_toobig (sqlite3_context *)
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_error_nomem (sqlite3_context *)
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_error_code (sqlite3_context *, int)
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_int (sqlite3_context *, int)
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_int64 (sqlite3_context *, sqlite3_int64)
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_null (sqlite3_context *)
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_text (sqlite3_context *, const char *, int, void(*)(void *))
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_text64 (sqlite3_context *, const char *, sqlite3_uint64, void(*)(void *), unsigned char encoding)
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_text16 (sqlite3_context *, const void *, int, void(*)(void *))
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_text16le (sqlite3_context *, const void *, int, void(*)(void *))
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_text16be (sqlite3_context *, const void *, int, void(*)(void *))
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_value (sqlite3_context *, sqlite3_value *)
 
SQLITE_API void SQLITE_STDCALL sqlite3_result_zeroblob (sqlite3_context *, int n)
 
SQLITE_API int SQLITE_STDCALL sqlite3_create_collation (sqlite3 *, const char *zName, int eTextRep, void *pArg, int(*xCompare)(void *, int, const void *, int, const void *))
 
SQLITE_API int SQLITE_STDCALL sqlite3_create_collation_v2 (sqlite3 *, const char *zName, int eTextRep, void *pArg, int(*xCompare)(void *, int, const void *, int, const void *), void(*xDestroy)(void *))
 
SQLITE_API int SQLITE_STDCALL sqlite3_create_collation16 (sqlite3 *, const void *zName, int eTextRep, void *pArg, int(*xCompare)(void *, int, const void *, int, const void *))
 
SQLITE_API int SQLITE_STDCALL sqlite3_collation_needed (sqlite3 *, void *, void(*)(void *, sqlite3 *, int eTextRep, const char *))
 
SQLITE_API int SQLITE_STDCALL sqlite3_collation_needed16 (sqlite3 *, void *, void(*)(void *, sqlite3 *, int eTextRep, const void *))
 
SQLITE_API int SQLITE_STDCALL sqlite3_sleep (int)
 
SQLITE_API int SQLITE_STDCALL sqlite3_get_autocommit (sqlite3 *)
 
SQLITE_API sqlite3 *SQLITE_STDCALL sqlite3_db_handle (sqlite3_stmt *)
 
SQLITE_API const char *SQLITE_STDCALL sqlite3_db_filename (sqlite3 *db, const char *zDbName)
 
SQLITE_API int SQLITE_STDCALL sqlite3_db_readonly (sqlite3 *db, const char *zDbName)
 
SQLITE_API sqlite3_stmt *SQLITE_STDCALL sqlite3_next_stmt (sqlite3 *pDb, sqlite3_stmt *pStmt)
 
SQLITE_API void *SQLITE_STDCALL sqlite3_commit_hook (sqlite3 *, int(*)(void *), void *)
 
SQLITE_API void *SQLITE_STDCALL sqlite3_rollback_hook (sqlite3 *, void(*)(void *), void *)
 
SQLITE_API void *SQLITE_STDCALL sqlite3_update_hook (sqlite3 *, void(*)(void *, int, char const *, char const *, sqlite3_int64), void *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_enable_shared_cache (int)
 
SQLITE_API int SQLITE_STDCALL sqlite3_release_memory (int)
 
SQLITE_API int SQLITE_STDCALL sqlite3_db_release_memory (sqlite3 *)
 
SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_soft_heap_limit64 (sqlite3_int64 N)
 
SQLITE_API SQLITE_DEPRECATED void SQLITE_STDCALL sqlite3_soft_heap_limit (int N)
 
SQLITE_API int SQLITE_STDCALL sqlite3_table_column_metadata (sqlite3 *db, const char *zDbName, const char *zTableName, const char *zColumnName, char const **pzDataType, char const **pzCollSeq, int *pNotNull, int *pPrimaryKey, int *pAutoinc)
 
SQLITE_API int SQLITE_STDCALL sqlite3_load_extension (sqlite3 *db, const char *zFile, const char *zProc, char **pzErrMsg)
 
SQLITE_API int SQLITE_STDCALL sqlite3_enable_load_extension (sqlite3 *db, int onoff)
 
SQLITE_API int SQLITE_STDCALL sqlite3_auto_extension (void(*xEntryPoint)(void))
 
SQLITE_API int SQLITE_STDCALL sqlite3_cancel_auto_extension (void(*xEntryPoint)(void))
 
SQLITE_API void SQLITE_STDCALL sqlite3_reset_auto_extension (void)
 
SQLITE_API int SQLITE_STDCALL sqlite3_create_module (sqlite3 *db, const char *zName, const sqlite3_module *p, void *pClientData)
 
SQLITE_API int SQLITE_STDCALL sqlite3_create_module_v2 (sqlite3 *db, const char *zName, const sqlite3_module *p, void *pClientData, void(*xDestroy)(void *))
 
SQLITE_API int SQLITE_STDCALL sqlite3_declare_vtab (sqlite3 *, const char *zSQL)
 
SQLITE_API int SQLITE_STDCALL sqlite3_overload_function (sqlite3 *, const char *zFuncName, int nArg)
 
SQLITE_API int SQLITE_STDCALL sqlite3_blob_open (sqlite3 *, const char *zDb, const char *zTable, const char *zColumn, sqlite3_int64 iRow, int flags, sqlite3_blob **ppBlob)
 
SQLITE_API SQLITE_EXPERIMENTAL int SQLITE_STDCALL sqlite3_blob_reopen (sqlite3_blob *, sqlite3_int64)
 
SQLITE_API int SQLITE_STDCALL sqlite3_blob_close (sqlite3_blob *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_blob_bytes (sqlite3_blob *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_blob_read (sqlite3_blob *, void *Z, int N, int iOffset)
 
SQLITE_API int SQLITE_STDCALL sqlite3_blob_write (sqlite3_blob *, const void *z, int n, int iOffset)
 
SQLITE_API sqlite3_vfs *SQLITE_STDCALL sqlite3_vfs_find (const char *zVfsName)
 
SQLITE_API int SQLITE_STDCALL sqlite3_vfs_register (sqlite3_vfs *, int makeDflt)
 
SQLITE_API int SQLITE_STDCALL sqlite3_vfs_unregister (sqlite3_vfs *)
 
SQLITE_API sqlite3_mutex *SQLITE_STDCALL sqlite3_mutex_alloc (int)
 
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_free (sqlite3_mutex *)
 
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter (sqlite3_mutex *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_try (sqlite3_mutex *)
 
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave (sqlite3_mutex *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held (sqlite3_mutex *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_notheld (sqlite3_mutex *)
 
SQLITE_API sqlite3_mutex *SQLITE_STDCALL sqlite3_db_mutex (sqlite3 *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_file_control (sqlite3 *, const char *zDbName, int op, void *)
 
SQLITE_API int SQLITE_CDECL sqlite3_test_control (int op,...)
 
SQLITE_API int SQLITE_STDCALL sqlite3_status (int op, int *pCurrent, int *pHighwater, int resetFlag)
 
SQLITE_API int SQLITE_STDCALL sqlite3_status64 (int op, sqlite3_int64 *pCurrent, sqlite3_int64 *pHighwater, int resetFlag)
 
SQLITE_API int SQLITE_STDCALL sqlite3_db_status (sqlite3 *, int op, int *pCur, int *pHiwtr, int resetFlg)
 
SQLITE_API int SQLITE_STDCALL sqlite3_stmt_status (sqlite3_stmt *, int op, int resetFlg)
 
SQLITE_API sqlite3_backup *SQLITE_STDCALL sqlite3_backup_init (sqlite3 *pDest, const char *zDestName, sqlite3 *pSource, const char *zSourceName)
 
SQLITE_API int SQLITE_STDCALL sqlite3_backup_step (sqlite3_backup *p, int nPage)
 
SQLITE_API int SQLITE_STDCALL sqlite3_backup_finish (sqlite3_backup *p)
 
SQLITE_API int SQLITE_STDCALL sqlite3_backup_remaining (sqlite3_backup *p)
 
SQLITE_API int SQLITE_STDCALL sqlite3_backup_pagecount (sqlite3_backup *p)
 
SQLITE_API int SQLITE_STDCALL sqlite3_unlock_notify (sqlite3 *pBlocked, void(*xNotify)(void **apArg, int nArg), void *pNotifyArg)
 
SQLITE_API int SQLITE_STDCALL sqlite3_stricmp (const char *, const char *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_strnicmp (const char *, const char *, int)
 
SQLITE_API int SQLITE_STDCALL sqlite3_strglob (const char *zGlob, const char *zStr)
 
SQLITE_API void SQLITE_CDECL sqlite3_log (int iErrCode, const char *zFormat,...)
 
SQLITE_API void *SQLITE_STDCALL sqlite3_wal_hook (sqlite3 *, int(*)(void *, sqlite3 *, const char *, int), void *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_wal_autocheckpoint (sqlite3 *db, int N)
 
SQLITE_API int SQLITE_STDCALL sqlite3_wal_checkpoint (sqlite3 *db, const char *zDb)
 
SQLITE_API int SQLITE_STDCALL sqlite3_wal_checkpoint_v2 (sqlite3 *db, const char *zDb, int eMode, int *pnLog, int *pnCkpt)
 
SQLITE_API int SQLITE_CDECL sqlite3_vtab_config (sqlite3 *, int op,...)
 
SQLITE_API int SQLITE_STDCALL sqlite3_vtab_on_conflict (sqlite3 *)
 
SQLITE_API SQLITE_EXPERIMENTAL int SQLITE_STDCALL sqlite3_stmt_scanstatus (sqlite3_stmt *pStmt, int idx, int iScanStatusOp, void *pOut)
 
SQLITE_API SQLITE_EXPERIMENTAL void SQLITE_STDCALL sqlite3_stmt_scanstatus_reset (sqlite3_stmt *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_rtree_geometry_callback (sqlite3 *db, const char *zGeom, int(*xGeom)(sqlite3_rtree_geometry *, int, sqlite3_rtree_dbl *, int *), void *pContext)
 
SQLITE_API int SQLITE_STDCALL sqlite3_rtree_query_callback (sqlite3 *db, const char *zQueryFunc, int(*xQueryFunc)(sqlite3_rtree_query_info *), void *pContext, void(*xDestructor)(void *))
 
SQLITE_PRIVATE void sqlite3HashInit (Hash *)
 
SQLITE_PRIVATE void * sqlite3HashInsert (Hash *, const char *pKey, void *pData)
 
SQLITE_PRIVATE void * sqlite3HashFind (const Hash *, const char *pKey)
 
SQLITE_PRIVATE void sqlite3HashClear (Hash *)
 
SQLITE_PRIVATE int sqlite3BtreeOpen (sqlite3_vfs *pVfs, const char *zFilename, sqlite3 *db, Btree **ppBtree, int flags, int vfsFlags)
 
SQLITE_PRIVATE int sqlite3BtreeClose (Btree *)
 
SQLITE_PRIVATE int sqlite3BtreeSetCacheSize (Btree *, int)
 
SQLITE_PRIVATE int sqlite3BtreeSetPagerFlags (Btree *, unsigned)
 
SQLITE_PRIVATE int sqlite3BtreeSyncDisabled (Btree *)
 
SQLITE_PRIVATE int sqlite3BtreeSetPageSize (Btree *p, int nPagesize, int nReserve, int eFix)
 
SQLITE_PRIVATE int sqlite3BtreeGetPageSize (Btree *)
 
SQLITE_PRIVATE int sqlite3BtreeMaxPageCount (Btree *, int)
 
SQLITE_PRIVATE u32 sqlite3BtreeLastPage (Btree *)
 
SQLITE_PRIVATE int sqlite3BtreeSecureDelete (Btree *, int)
 
SQLITE_PRIVATE int sqlite3BtreeGetOptimalReserve (Btree *)
 
SQLITE_PRIVATE int sqlite3BtreeGetReserveNoMutex (Btree *p)
 
SQLITE_PRIVATE int sqlite3BtreeSetAutoVacuum (Btree *, int)
 
SQLITE_PRIVATE int sqlite3BtreeGetAutoVacuum (Btree *)
 
SQLITE_PRIVATE int sqlite3BtreeBeginTrans (Btree *, int)
 
SQLITE_PRIVATE int sqlite3BtreeCommitPhaseOne (Btree *, const char *zMaster)
 
SQLITE_PRIVATE int sqlite3BtreeCommitPhaseTwo (Btree *, int)
 
SQLITE_PRIVATE int sqlite3BtreeCommit (Btree *)
 
SQLITE_PRIVATE int sqlite3BtreeRollback (Btree *, int, int)
 
SQLITE_PRIVATE int sqlite3BtreeBeginStmt (Btree *, int)
 
SQLITE_PRIVATE int sqlite3BtreeCreateTable (Btree *, int *, int flags)
 
SQLITE_PRIVATE int sqlite3BtreeIsInTrans (Btree *)
 
SQLITE_PRIVATE int sqlite3BtreeIsInReadTrans (Btree *)
 
SQLITE_PRIVATE int sqlite3BtreeIsInBackup (Btree *)
 
SQLITE_PRIVATE void * sqlite3BtreeSchema (Btree *, int, void(*)(void *))
 
SQLITE_PRIVATE int sqlite3BtreeSchemaLocked (Btree *pBtree)
 
SQLITE_PRIVATE int sqlite3BtreeLockTable (Btree *pBtree, int iTab, u8 isWriteLock)
 
SQLITE_PRIVATE int sqlite3BtreeSavepoint (Btree *, int, int)
 
SQLITE_PRIVATE const char * sqlite3BtreeGetFilename (Btree *)
 
SQLITE_PRIVATE const char * sqlite3BtreeGetJournalname (Btree *)
 
SQLITE_PRIVATE int sqlite3BtreeCopyFile (Btree *, Btree *)
 
SQLITE_PRIVATE int sqlite3BtreeIncrVacuum (Btree *)
 
SQLITE_PRIVATE int sqlite3BtreeDropTable (Btree *, int, int *)
 
SQLITE_PRIVATE int sqlite3BtreeClearTable (Btree *, int, int *)
 
SQLITE_PRIVATE int sqlite3BtreeClearTableOfCursor (BtCursor *)
 
SQLITE_PRIVATE int sqlite3BtreeTripAllCursors (Btree *, int, int)
 
SQLITE_PRIVATE void sqlite3BtreeGetMeta (Btree *pBtree, int idx, u32 *pValue)
 
SQLITE_PRIVATE int sqlite3BtreeUpdateMeta (Btree *, int idx, u32 value)
 
SQLITE_PRIVATE int sqlite3BtreeNewDb (Btree *p)
 
SQLITE_PRIVATE int sqlite3BtreeCursor (Btree *, int iTable, int wrFlag, struct KeyInfo *, BtCursor *pCursor)
 
SQLITE_PRIVATE int sqlite3BtreeCursorSize (void)
 
SQLITE_PRIVATE void sqlite3BtreeCursorZero (BtCursor *)
 
SQLITE_PRIVATE int sqlite3BtreeCloseCursor (BtCursor *)
 
SQLITE_PRIVATE int sqlite3BtreeMovetoUnpacked (BtCursor *, UnpackedRecord *pUnKey, i64 intKey, int bias, int *pRes)
 
SQLITE_PRIVATE int sqlite3BtreeCursorHasMoved (BtCursor *)
 
SQLITE_PRIVATE int sqlite3BtreeCursorRestore (BtCursor *, int *)
 
SQLITE_PRIVATE int sqlite3BtreeDelete (BtCursor *)
 
SQLITE_PRIVATE int sqlite3BtreeInsert (BtCursor *, const void *pKey, i64 nKey, const void *pData, int nData, int nZero, int bias, int seekResult)
 
SQLITE_PRIVATE int sqlite3BtreeFirst (BtCursor *, int *pRes)
 
SQLITE_PRIVATE int sqlite3BtreeLast (BtCursor *, int *pRes)
 
SQLITE_PRIVATE int sqlite3BtreeNext (BtCursor *, int *pRes)
 
SQLITE_PRIVATE int sqlite3BtreeEof (BtCursor *)
 
SQLITE_PRIVATE int sqlite3BtreePrevious (BtCursor *, int *pRes)
 
SQLITE_PRIVATE int sqlite3BtreeKeySize (BtCursor *, i64 *pSize)
 
SQLITE_PRIVATE int sqlite3BtreeKey (BtCursor *, u32 offset, u32 amt, void *)
 
SQLITE_PRIVATE const void * sqlite3BtreeKeyFetch (BtCursor *, u32 *pAmt)
 
SQLITE_PRIVATE const void * sqlite3BtreeDataFetch (BtCursor *, u32 *pAmt)
 
SQLITE_PRIVATE int sqlite3BtreeDataSize (BtCursor *, u32 *pSize)
 
SQLITE_PRIVATE int sqlite3BtreeData (BtCursor *, u32 offset, u32 amt, void *)
 
SQLITE_PRIVATE char * sqlite3BtreeIntegrityCheck (Btree *, int *aRoot, int nRoot, int, int *)
 
SQLITE_PRIVATE struct Pagersqlite3BtreePager (Btree *)
 
SQLITE_PRIVATE int sqlite3BtreePutData (BtCursor *, u32 offset, u32 amt, void *)
 
SQLITE_PRIVATE void sqlite3BtreeIncrblobCursor (BtCursor *)
 
SQLITE_PRIVATE void sqlite3BtreeClearCursor (BtCursor *)
 
SQLITE_PRIVATE int sqlite3BtreeSetVersion (Btree *pBt, int iVersion)
 
SQLITE_PRIVATE void sqlite3BtreeCursorHints (BtCursor *, unsigned int mask)
 
SQLITE_PRIVATE int sqlite3BtreeIsReadonly (Btree *pBt)
 
SQLITE_PRIVATE int sqlite3HeaderSizeBtree (void)
 
SQLITE_PRIVATE int sqlite3BtreeCount (BtCursor *, i64 *)
 
SQLITE_PRIVATE int sqlite3BtreeCheckpoint (Btree *, int, int *, int *)
 
SQLITE_PRIVATE void sqlite3BtreeEnter (Btree *)
 
SQLITE_PRIVATE void sqlite3BtreeEnterAll (sqlite3 *)
 
SQLITE_PRIVATE int sqlite3BtreeSharable (Btree *)
 
SQLITE_PRIVATE void sqlite3BtreeLeave (Btree *)
 
SQLITE_PRIVATE void sqlite3BtreeEnterCursor (BtCursor *)
 
SQLITE_PRIVATE void sqlite3BtreeLeaveCursor (BtCursor *)
 
SQLITE_PRIVATE void sqlite3BtreeLeaveAll (sqlite3 *)
 
SQLITE_PRIVATE Vdbesqlite3VdbeCreate (Parse *)
 
SQLITE_PRIVATE int sqlite3VdbeAddOp0 (Vdbe *, int)
 
SQLITE_PRIVATE int sqlite3VdbeAddOp1 (Vdbe *, int, int)
 
SQLITE_PRIVATE int sqlite3VdbeAddOp2 (Vdbe *, int, int, int)
 
SQLITE_PRIVATE int sqlite3VdbeAddOp3 (Vdbe *, int, int, int, int)
 
SQLITE_PRIVATE int sqlite3VdbeAddOp4 (Vdbe *, int, int, int, int, const char *zP4, int)
 
SQLITE_PRIVATE int sqlite3VdbeAddOp4Int (Vdbe *, int, int, int, int, int)
 
SQLITE_PRIVATE int sqlite3VdbeAddOpList (Vdbe *, int nOp, VdbeOpList const *aOp, int iLineno)
 
SQLITE_PRIVATE void sqlite3VdbeAddParseSchemaOp (Vdbe *, int, char *)
 
SQLITE_PRIVATE void sqlite3VdbeChangeP1 (Vdbe *, u32 addr, int P1)
 
SQLITE_PRIVATE void sqlite3VdbeChangeP2 (Vdbe *, u32 addr, int P2)
 
SQLITE_PRIVATE void sqlite3VdbeChangeP3 (Vdbe *, u32 addr, int P3)
 
SQLITE_PRIVATE void sqlite3VdbeChangeP5 (Vdbe *, u8 P5)
 
SQLITE_PRIVATE void sqlite3VdbeJumpHere (Vdbe *, int addr)
 
SQLITE_PRIVATE void sqlite3VdbeChangeToNoop (Vdbe *, int addr)
 
SQLITE_PRIVATE int sqlite3VdbeDeletePriorOpcode (Vdbe *, u8 op)
 
SQLITE_PRIVATE void sqlite3VdbeChangeP4 (Vdbe *, int addr, const char *zP4, int N)
 
SQLITE_PRIVATE void sqlite3VdbeSetP4KeyInfo (Parse *, Index *)
 
SQLITE_PRIVATE void sqlite3VdbeUsesBtree (Vdbe *, int)
 
SQLITE_PRIVATE VdbeOpsqlite3VdbeGetOp (Vdbe *, int)
 
SQLITE_PRIVATE int sqlite3VdbeMakeLabel (Vdbe *)
 
SQLITE_PRIVATE void sqlite3VdbeRunOnlyOnce (Vdbe *)
 
SQLITE_PRIVATE void sqlite3VdbeDelete (Vdbe *)
 
SQLITE_PRIVATE void sqlite3VdbeClearObject (sqlite3 *, Vdbe *)
 
SQLITE_PRIVATE void sqlite3VdbeMakeReady (Vdbe *, Parse *)
 
SQLITE_PRIVATE int sqlite3VdbeFinalize (Vdbe *)
 
SQLITE_PRIVATE void sqlite3VdbeResolveLabel (Vdbe *, int)
 
SQLITE_PRIVATE int sqlite3VdbeCurrentAddr (Vdbe *)
 
SQLITE_PRIVATE void sqlite3VdbeResetStepResult (Vdbe *)
 
SQLITE_PRIVATE void sqlite3VdbeRewind (Vdbe *)
 
SQLITE_PRIVATE int sqlite3VdbeReset (Vdbe *)
 
SQLITE_PRIVATE void sqlite3VdbeSetNumCols (Vdbe *, int)
 
SQLITE_PRIVATE int sqlite3VdbeSetColName (Vdbe *, int, int, const char *, void(*)(void *))
 
SQLITE_PRIVATE void sqlite3VdbeCountChanges (Vdbe *)
 
SQLITE_PRIVATE sqlite3sqlite3VdbeDb (Vdbe *)
 
SQLITE_PRIVATE void sqlite3VdbeSetSql (Vdbe *, const char *z, int n, int)
 
SQLITE_PRIVATE void sqlite3VdbeSwap (Vdbe *, Vdbe *)
 
SQLITE_PRIVATE VdbeOpsqlite3VdbeTakeOpArray (Vdbe *, int *, int *)
 
SQLITE_PRIVATE sqlite3_value * sqlite3VdbeGetBoundValue (Vdbe *, int, u8)
 
SQLITE_PRIVATE void sqlite3VdbeSetVarmask (Vdbe *, int)
 
SQLITE_PRIVATE char * sqlite3VdbeExpandSql (Vdbe *, const char *)
 
SQLITE_PRIVATE int sqlite3MemCompare (const Mem *, const Mem *, const CollSeq *)
 
SQLITE_PRIVATE void sqlite3VdbeRecordUnpack (KeyInfo *, int, const void *, UnpackedRecord *)
 
SQLITE_PRIVATE int sqlite3VdbeRecordCompare (int, const void *, UnpackedRecord *)
 
SQLITE_PRIVATE int sqlite3VdbeRecordCompareWithSkip (int, const void *, UnpackedRecord *, int)
 
SQLITE_PRIVATE UnpackedRecordsqlite3VdbeAllocUnpackedRecord (KeyInfo *, char *, int, char **)
 
SQLITE_PRIVATE RecordCompare sqlite3VdbeFindCompare (UnpackedRecord *)
 
SQLITE_PRIVATE void sqlite3VdbeLinkSubProgram (Vdbe *, SubProgram *)
 
SQLITE_PRIVATE int sqlite3PagerOpen (sqlite3_vfs *, Pager **ppPager, const char *, int, int, int, void(*)(DbPage *))
 
SQLITE_PRIVATE int sqlite3PagerClose (Pager *pPager)
 
SQLITE_PRIVATE int sqlite3PagerReadFileheader (Pager *, int, unsigned char *)
 
SQLITE_PRIVATE void sqlite3PagerSetBusyhandler (Pager *, int(*)(void *), void *)
 
SQLITE_PRIVATE int sqlite3PagerSetPagesize (Pager *, u32 *, int)
 
SQLITE_PRIVATE int sqlite3PagerMaxPageCount (Pager *, int)
 
SQLITE_PRIVATE void sqlite3PagerSetCachesize (Pager *, int)
 
SQLITE_PRIVATE void sqlite3PagerSetMmapLimit (Pager *, sqlite3_int64)
 
SQLITE_PRIVATE void sqlite3PagerShrink (Pager *)
 
SQLITE_PRIVATE void sqlite3PagerSetFlags (Pager *, unsigned)
 
SQLITE_PRIVATE int sqlite3PagerLockingMode (Pager *, int)
 
SQLITE_PRIVATE int sqlite3PagerSetJournalMode (Pager *, int)
 
SQLITE_PRIVATE int sqlite3PagerGetJournalMode (Pager *)
 
SQLITE_PRIVATE int sqlite3PagerOkToChangeJournalMode (Pager *)
 
SQLITE_PRIVATE i64 sqlite3PagerJournalSizeLimit (Pager *, i64)
 
SQLITE_PRIVATE sqlite3_backup ** sqlite3PagerBackupPtr (Pager *)
 
SQLITE_PRIVATE int sqlite3PagerAcquire (Pager *pPager, Pgno pgno, DbPage **ppPage, int clrFlag)
 
SQLITE_PRIVATE DbPage * sqlite3PagerLookup (Pager *pPager, Pgno pgno)
 
SQLITE_PRIVATE void sqlite3PagerRef (DbPage *)
 
SQLITE_PRIVATE void sqlite3PagerUnref (DbPage *)
 
SQLITE_PRIVATE void sqlite3PagerUnrefNotNull (DbPage *)
 
SQLITE_PRIVATE int sqlite3PagerWrite (DbPage *)
 
SQLITE_PRIVATE void sqlite3PagerDontWrite (DbPage *)
 
SQLITE_PRIVATE int sqlite3PagerMovepage (Pager *, DbPage *, Pgno, int)
 
SQLITE_PRIVATE int sqlite3PagerPageRefcount (DbPage *)
 
SQLITE_PRIVATE void * sqlite3PagerGetData (DbPage *)
 
SQLITE_PRIVATE void * sqlite3PagerGetExtra (DbPage *)
 
SQLITE_PRIVATE void sqlite3PagerPagecount (Pager *, int *)
 
SQLITE_PRIVATE int sqlite3PagerBegin (Pager *, int exFlag, int)
 
SQLITE_PRIVATE int sqlite3PagerCommitPhaseOne (Pager *, const char *zMaster, int)
 
SQLITE_PRIVATE int sqlite3PagerExclusiveLock (Pager *)
 
SQLITE_PRIVATE int sqlite3PagerSync (Pager *pPager, const char *zMaster)
 
SQLITE_PRIVATE int sqlite3PagerCommitPhaseTwo (Pager *)
 
SQLITE_PRIVATE int sqlite3PagerRollback (Pager *)
 
SQLITE_PRIVATE int sqlite3PagerOpenSavepoint (Pager *pPager, int n)
 
SQLITE_PRIVATE int sqlite3PagerSavepoint (Pager *pPager, int op, int iSavepoint)
 
SQLITE_PRIVATE int sqlite3PagerSharedLock (Pager *pPager)
 
SQLITE_PRIVATE int sqlite3PagerCheckpoint (Pager *pPager, int, int *, int *)
 
SQLITE_PRIVATE int sqlite3PagerWalSupported (Pager *pPager)
 
SQLITE_PRIVATE int sqlite3PagerWalCallback (Pager *pPager)
 
SQLITE_PRIVATE int sqlite3PagerOpenWal (Pager *pPager, int *pisOpen)
 
SQLITE_PRIVATE int sqlite3PagerCloseWal (Pager *pPager)
 
SQLITE_PRIVATE u8 sqlite3PagerIsreadonly (Pager *)
 
SQLITE_PRIVATE u32 sqlite3PagerDataVersion (Pager *)
 
SQLITE_PRIVATE int sqlite3PagerRefcount (Pager *)
 
SQLITE_PRIVATE int sqlite3PagerMemUsed (Pager *)
 
SQLITE_PRIVATE const char * sqlite3PagerFilename (Pager *, int)
 
SQLITE_PRIVATE const sqlite3_vfssqlite3PagerVfs (Pager *)
 
SQLITE_PRIVATE sqlite3_filesqlite3PagerFile (Pager *)
 
SQLITE_PRIVATE const char * sqlite3PagerJournalname (Pager *)
 
SQLITE_PRIVATE int sqlite3PagerNosync (Pager *)
 
SQLITE_PRIVATE void * sqlite3PagerTempSpace (Pager *)
 
SQLITE_PRIVATE int sqlite3PagerIsMemdb (Pager *)
 
SQLITE_PRIVATE void sqlite3PagerCacheStat (Pager *, int, int, int *)
 
SQLITE_PRIVATE void sqlite3PagerClearCache (Pager *)
 
SQLITE_PRIVATE int sqlite3SectorSize (sqlite3_file *)
 
SQLITE_PRIVATE void sqlite3PagerTruncateImage (Pager *, Pgno)
 
SQLITE_PRIVATE void sqlite3PagerRekey (DbPage *, Pgno, u16)
 
SQLITE_PRIVATE int sqlite3PcacheInitialize (void)
 
SQLITE_PRIVATE void sqlite3PcacheShutdown (void)
 
SQLITE_PRIVATE void sqlite3PCacheBufferSetup (void *, int sz, int n)
 
SQLITE_PRIVATE int sqlite3PcacheOpen (int szPage, int szExtra, int bPurgeable, int(*xStress)(void *, PgHdr *), void *pStress, PCache *pToInit)
 
SQLITE_PRIVATE int sqlite3PcacheSetPageSize (PCache *, int)
 
SQLITE_PRIVATE int sqlite3PcacheSize (void)
 
SQLITE_PRIVATE sqlite3_pcache_pagesqlite3PcacheFetch (PCache *, Pgno, int createFlag)
 
SQLITE_PRIVATE int sqlite3PcacheFetchStress (PCache *, Pgno, sqlite3_pcache_page **)
 
SQLITE_PRIVATE PgHdrsqlite3PcacheFetchFinish (PCache *, Pgno, sqlite3_pcache_page *pPage)
 
SQLITE_PRIVATE void sqlite3PcacheRelease (PgHdr *)
 
SQLITE_PRIVATE void sqlite3PcacheDrop (PgHdr *)
 
SQLITE_PRIVATE void sqlite3PcacheMakeDirty (PgHdr *)
 
SQLITE_PRIVATE void sqlite3PcacheMakeClean (PgHdr *)
 
SQLITE_PRIVATE void sqlite3PcacheCleanAll (PCache *)
 
SQLITE_PRIVATE void sqlite3PcacheMove (PgHdr *, Pgno)
 
SQLITE_PRIVATE void sqlite3PcacheTruncate (PCache *, Pgno x)
 
SQLITE_PRIVATE PgHdrsqlite3PcacheDirtyList (PCache *)
 
SQLITE_PRIVATE void sqlite3PcacheClose (PCache *)
 
SQLITE_PRIVATE void sqlite3PcacheClearSyncFlags (PCache *)
 
SQLITE_PRIVATE void sqlite3PcacheClear (PCache *)
 
SQLITE_PRIVATE int sqlite3PcacheRefCount (PCache *)
 
SQLITE_PRIVATE void sqlite3PcacheRef (PgHdr *)
 
SQLITE_PRIVATE int sqlite3PcachePageRefcount (PgHdr *)
 
SQLITE_PRIVATE int sqlite3PcachePagecount (PCache *)
 
SQLITE_PRIVATE void sqlite3PcacheSetCachesize (PCache *, int)
 
SQLITE_PRIVATE void sqlite3PcacheShrink (PCache *)
 
SQLITE_PRIVATE void sqlite3PCacheSetDefault (void)
 
SQLITE_PRIVATE int sqlite3HeaderSizePcache (void)
 
SQLITE_PRIVATE int sqlite3HeaderSizePcache1 (void)
 
SQLITE_PRIVATE int sqlite3OsInit (void)
 
SQLITE_PRIVATE int sqlite3OsClose (sqlite3_file *)
 
SQLITE_PRIVATE int sqlite3OsRead (sqlite3_file *, void *, int amt, i64 offset)
 
SQLITE_PRIVATE int sqlite3OsWrite (sqlite3_file *, const void *, int amt, i64 offset)
 
SQLITE_PRIVATE int sqlite3OsTruncate (sqlite3_file *, i64 size)
 
SQLITE_PRIVATE int sqlite3OsSync (sqlite3_file *, int)
 
SQLITE_PRIVATE int sqlite3OsFileSize (sqlite3_file *, i64 *pSize)
 
SQLITE_PRIVATE int sqlite3OsLock (sqlite3_file *, int)
 
SQLITE_PRIVATE int sqlite3OsUnlock (sqlite3_file *, int)
 
SQLITE_PRIVATE int sqlite3OsCheckReservedLock (sqlite3_file *id, int *pResOut)
 
SQLITE_PRIVATE int sqlite3OsFileControl (sqlite3_file *, int, void *)
 
SQLITE_PRIVATE void sqlite3OsFileControlHint (sqlite3_file *, int, void *)
 
SQLITE_PRIVATE int sqlite3OsSectorSize (sqlite3_file *id)
 
SQLITE_PRIVATE int sqlite3OsDeviceCharacteristics (sqlite3_file *id)
 
SQLITE_PRIVATE int sqlite3OsShmMap (sqlite3_file *, int, int, int, void volatile **)
 
SQLITE_PRIVATE int sqlite3OsShmLock (sqlite3_file *id, int, int, int)
 
SQLITE_PRIVATE void sqlite3OsShmBarrier (sqlite3_file *id)
 
SQLITE_PRIVATE int sqlite3OsShmUnmap (sqlite3_file *id, int)
 
SQLITE_PRIVATE int sqlite3OsFetch (sqlite3_file *id, i64, int, void **)
 
SQLITE_PRIVATE int sqlite3OsUnfetch (sqlite3_file *, i64, void *)
 
SQLITE_PRIVATE int sqlite3OsOpen (sqlite3_vfs *, const char *, sqlite3_file *, int, int *)
 
SQLITE_PRIVATE int sqlite3OsDelete (sqlite3_vfs *, const char *, int)
 
SQLITE_PRIVATE int sqlite3OsAccess (sqlite3_vfs *, const char *, int, int *pResOut)
 
SQLITE_PRIVATE int sqlite3OsFullPathname (sqlite3_vfs *, const char *, int, char *)
 
SQLITE_PRIVATE void * sqlite3OsDlOpen (sqlite3_vfs *, const char *)
 
SQLITE_PRIVATE void sqlite3OsDlError (sqlite3_vfs *, int, char *)
 
SQLITE_PRIVATE void sqlite3OsDlClose (sqlite3_vfs *, void *)
 
SQLITE_PRIVATE int sqlite3OsRandomness (sqlite3_vfs *, int, char *)
 
SQLITE_PRIVATE int sqlite3OsSleep (sqlite3_vfs *, int)
 
SQLITE_PRIVATE int sqlite3OsCurrentTimeInt64 (sqlite3_vfs *, sqlite3_int64 *)
 
SQLITE_PRIVATE int sqlite3OsOpenMalloc (sqlite3_vfs *, const char *, sqlite3_file **, int, int *)
 
SQLITE_PRIVATE int sqlite3OsCloseFree (sqlite3_file *)
 
SQLITE_PRIVATE int sqlite3WalkExpr (Walker *, Expr *)
 
SQLITE_PRIVATE int sqlite3WalkExprList (Walker *, ExprList *)
 
SQLITE_PRIVATE int sqlite3WalkSelect (Walker *, Select *)
 
SQLITE_PRIVATE int sqlite3WalkSelectExpr (Walker *, Select *)
 
SQLITE_PRIVATE int sqlite3WalkSelectFrom (Walker *, Select *)
 
SQLITE_PRIVATE int sqlite3CorruptError (int)
 
SQLITE_PRIVATE int sqlite3MisuseError (int)
 
SQLITE_PRIVATE int sqlite3CantopenError (int)
 
SQLITE_PRIVATE int sqlite3IsIdChar (u8)
 
SQLITE_PRIVATE int sqlite3Strlen30 (const char *)
 
SQLITE_PRIVATE int sqlite3MallocInit (void)
 
SQLITE_PRIVATE void sqlite3MallocEnd (void)
 
SQLITE_PRIVATE void * sqlite3Malloc (u64)
 
SQLITE_PRIVATE void * sqlite3MallocZero (u64)
 
SQLITE_PRIVATE void * sqlite3DbMallocZero (sqlite3 *, u64)
 
SQLITE_PRIVATE void * sqlite3DbMallocRaw (sqlite3 *, u64)
 
SQLITE_PRIVATE char * sqlite3DbStrDup (sqlite3 *, const char *)
 
SQLITE_PRIVATE char * sqlite3DbStrNDup (sqlite3 *, const char *, u64)
 
SQLITE_PRIVATE void * sqlite3Realloc (void *, u64)
 
SQLITE_PRIVATE void * sqlite3DbReallocOrFree (sqlite3 *, void *, u64)
 
SQLITE_PRIVATE void * sqlite3DbRealloc (sqlite3 *, void *, u64)
 
SQLITE_PRIVATE void sqlite3DbFree (sqlite3 *, void *)
 
SQLITE_PRIVATE int sqlite3MallocSize (void *)
 
SQLITE_PRIVATE int sqlite3DbMallocSize (sqlite3 *, void *)
 
SQLITE_PRIVATE void * sqlite3ScratchMalloc (int)
 
SQLITE_PRIVATE void sqlite3ScratchFree (void *)
 
SQLITE_PRIVATE void * sqlite3PageMalloc (int)
 
SQLITE_PRIVATE void sqlite3PageFree (void *)
 
SQLITE_PRIVATE void sqlite3MemSetDefault (void)
 
SQLITE_PRIVATE void sqlite3BenignMallocHooks (void(*)(void), void(*)(void))
 
SQLITE_PRIVATE int sqlite3HeapNearlyFull (void)
 
SQLITE_PRIVATE sqlite3_mutex_methods const * sqlite3DefaultMutex (void)
 
SQLITE_PRIVATE sqlite3_mutex_methods const * sqlite3NoopMutex (void)
 
SQLITE_PRIVATE sqlite3_mutexsqlite3MutexAlloc (int)
 
SQLITE_PRIVATE int sqlite3MutexInit (void)
 
SQLITE_PRIVATE int sqlite3MutexEnd (void)
 
SQLITE_PRIVATE sqlite3_int64 sqlite3StatusValue (int)
 
SQLITE_PRIVATE void sqlite3StatusUp (int, int)
 
SQLITE_PRIVATE void sqlite3StatusDown (int, int)
 
SQLITE_PRIVATE void sqlite3StatusSet (int, int)
 
SQLITE_PRIVATE sqlite3_mutexsqlite3Pcache1Mutex (void)
 
SQLITE_PRIVATE sqlite3_mutexsqlite3MallocMutex (void)
 
SQLITE_PRIVATE int sqlite3IsNaN (double)
 
SQLITE_PRIVATE void sqlite3VXPrintf (StrAccum *, u32, const char *, va_list)
 
SQLITE_PRIVATE void sqlite3XPrintf (StrAccum *, u32, const char *,...)
 
SQLITE_PRIVATE char * sqlite3MPrintf (sqlite3 *, const char *,...)
 
SQLITE_PRIVATE char * sqlite3VMPrintf (sqlite3 *, const char *, va_list)
 
SQLITE_PRIVATE char * sqlite3MAppendf (sqlite3 *, char *, const char *,...)
 
SQLITE_PRIVATE void sqlite3SetString (char **, sqlite3 *, const char *,...)
 
SQLITE_PRIVATE void sqlite3ErrorMsg (Parse *, const char *,...)
 
SQLITE_PRIVATE int sqlite3Dequote (char *)
 
SQLITE_PRIVATE int sqlite3KeywordCode (const unsigned char *, int)
 
SQLITE_PRIVATE int sqlite3RunParser (Parse *, const char *, char **)
 
SQLITE_PRIVATE void sqlite3FinishCoding (Parse *)
 
SQLITE_PRIVATE int sqlite3GetTempReg (Parse *)
 
SQLITE_PRIVATE void sqlite3ReleaseTempReg (Parse *, int)
 
SQLITE_PRIVATE int sqlite3GetTempRange (Parse *, int)
 
SQLITE_PRIVATE void sqlite3ReleaseTempRange (Parse *, int, int)
 
SQLITE_PRIVATE void sqlite3ClearTempRegCache (Parse *)
 
SQLITE_PRIVATE Exprsqlite3ExprAlloc (sqlite3 *, int, const Token *, int)
 
SQLITE_PRIVATE Exprsqlite3Expr (sqlite3 *, int, const char *)
 
SQLITE_PRIVATE void sqlite3ExprAttachSubtrees (sqlite3 *, Expr *, Expr *, Expr *)
 
SQLITE_PRIVATE Exprsqlite3PExpr (Parse *, int, Expr *, Expr *, const Token *)
 
SQLITE_PRIVATE Exprsqlite3ExprAnd (sqlite3 *, Expr *, Expr *)
 
SQLITE_PRIVATE Exprsqlite3ExprFunction (Parse *, ExprList *, Token *)
 
SQLITE_PRIVATE void sqlite3ExprAssignVarNumber (Parse *, Expr *)
 
SQLITE_PRIVATE void sqlite3ExprDelete (sqlite3 *, Expr *)
 
SQLITE_PRIVATE ExprListsqlite3ExprListAppend (Parse *, ExprList *, Expr *)
 
SQLITE_PRIVATE void sqlite3ExprListSetName (Parse *, ExprList *, Token *, int)
 
SQLITE_PRIVATE void sqlite3ExprListSetSpan (Parse *, ExprList *, ExprSpan *)
 
SQLITE_PRIVATE void sqlite3ExprListDelete (sqlite3 *, ExprList *)
 
SQLITE_PRIVATE u32 sqlite3ExprListFlags (const ExprList *)
 
SQLITE_PRIVATE int sqlite3Init (sqlite3 *, char **)
 
SQLITE_PRIVATE int sqlite3InitCallback (void *, int, char **, char **)
 
SQLITE_PRIVATE void sqlite3Pragma (Parse *, Token *, Token *, Token *, int)
 
SQLITE_PRIVATE void sqlite3ResetAllSchemasOfConnection (sqlite3 *)
 
SQLITE_PRIVATE void sqlite3ResetOneSchema (sqlite3 *, int)
 
SQLITE_PRIVATE void sqlite3CollapseDatabaseArray (sqlite3 *)
 
SQLITE_PRIVATE void sqlite3BeginParse (Parse *, int)
 
SQLITE_PRIVATE void sqlite3CommitInternalChanges (sqlite3 *)
 
SQLITE_PRIVATE Tablesqlite3ResultSetOfSelect (Parse *, Select *)
 
SQLITE_PRIVATE void sqlite3OpenMasterTable (Parse *, int)
 
SQLITE_PRIVATE Indexsqlite3PrimaryKeyIndex (Table *)
 
SQLITE_PRIVATE i16 sqlite3ColumnOfIndex (Index *, i16)
 
SQLITE_PRIVATE void sqlite3StartTable (Parse *, Token *, Token *, int, int, int, int)
 
SQLITE_PRIVATE void sqlite3AddColumn (Parse *, Token *)
 
SQLITE_PRIVATE void sqlite3AddNotNull (Parse *, int)
 
SQLITE_PRIVATE void sqlite3AddPrimaryKey (Parse *, ExprList *, int, int, int)
 
SQLITE_PRIVATE void sqlite3AddCheckConstraint (Parse *, Expr *)
 
SQLITE_PRIVATE void sqlite3AddColumnType (Parse *, Token *)
 
SQLITE_PRIVATE void sqlite3AddDefaultValue (Parse *, ExprSpan *)
 
SQLITE_PRIVATE void sqlite3AddCollateType (Parse *, Token *)
 
SQLITE_PRIVATE void sqlite3EndTable (Parse *, Token *, Token *, u8, Select *)
 
SQLITE_PRIVATE int sqlite3ParseUri (const char *, const char *, unsigned int *, sqlite3_vfs **, char **, char **)
 
SQLITE_PRIVATE Btreesqlite3DbNameToBtree (sqlite3 *, const char *)
 
SQLITE_PRIVATE int sqlite3CodeOnce (Parse *)
 
SQLITE_PRIVATE int sqlite3FaultSim (int)
 
SQLITE_PRIVATE Bitvecsqlite3BitvecCreate (u32)
 
SQLITE_PRIVATE int sqlite3BitvecTest (Bitvec *, u32)
 
SQLITE_PRIVATE int sqlite3BitvecSet (Bitvec *, u32)
 
SQLITE_PRIVATE void sqlite3BitvecClear (Bitvec *, u32, void *)
 
SQLITE_PRIVATE void sqlite3BitvecDestroy (Bitvec *)
 
SQLITE_PRIVATE u32 sqlite3BitvecSize (Bitvec *)
 
SQLITE_PRIVATE int sqlite3BitvecBuiltinTest (int, int *)
 
SQLITE_PRIVATE RowSetsqlite3RowSetInit (sqlite3 *, void *, unsigned int)
 
SQLITE_PRIVATE void sqlite3RowSetClear (RowSet *)
 
SQLITE_PRIVATE void sqlite3RowSetInsert (RowSet *, i64)
 
SQLITE_PRIVATE int sqlite3RowSetTest (RowSet *, int iBatch, i64)
 
SQLITE_PRIVATE int sqlite3RowSetNext (RowSet *, i64 *)
 
SQLITE_PRIVATE void sqlite3CreateView (Parse *, Token *, Token *, Token *, Select *, int, int)
 
SQLITE_PRIVATE int sqlite3ViewGetColumnNames (Parse *, Table *)
 
SQLITE_PRIVATE void sqlite3DropTable (Parse *, SrcList *, int, int)
 
SQLITE_PRIVATE void sqlite3CodeDropTable (Parse *, Table *, int, int)
 
SQLITE_PRIVATE void sqlite3DeleteTable (sqlite3 *, Table *)
 
SQLITE_PRIVATE void sqlite3AutoincrementBegin (Parse *pParse)
 
SQLITE_PRIVATE void sqlite3AutoincrementEnd (Parse *pParse)
 
SQLITE_PRIVATE void sqlite3Insert (Parse *, SrcList *, Select *, IdList *, int)
 
SQLITE_PRIVATE void * sqlite3ArrayAllocate (sqlite3 *, void *, int, int *, int *)
 
SQLITE_PRIVATE IdListsqlite3IdListAppend (sqlite3 *, IdList *, Token *)
 
SQLITE_PRIVATE int sqlite3IdListIndex (IdList *, const char *)
 
SQLITE_PRIVATE SrcListsqlite3SrcListEnlarge (sqlite3 *, SrcList *, int, int)
 
SQLITE_PRIVATE SrcListsqlite3SrcListAppend (sqlite3 *, SrcList *, Token *, Token *)
 
SQLITE_PRIVATE SrcListsqlite3SrcListAppendFromTerm (Parse *, SrcList *, Token *, Token *, Token *, Select *, Expr *, IdList *)
 
SQLITE_PRIVATE void sqlite3SrcListIndexedBy (Parse *, SrcList *, Token *)
 
SQLITE_PRIVATE int sqlite3IndexedByLookup (Parse *, struct SrcList_item *)
 
SQLITE_PRIVATE void sqlite3SrcListShiftJoinType (SrcList *)
 
SQLITE_PRIVATE void sqlite3SrcListAssignCursors (Parse *, SrcList *)
 
SQLITE_PRIVATE void sqlite3IdListDelete (sqlite3 *, IdList *)
 
SQLITE_PRIVATE void sqlite3SrcListDelete (sqlite3 *, SrcList *)
 
SQLITE_PRIVATE Indexsqlite3AllocateIndexObject (sqlite3 *, i16, int, char **)
 
SQLITE_PRIVATE Indexsqlite3CreateIndex (Parse *, Token *, Token *, SrcList *, ExprList *, int, Token *, Expr *, int, int)
 
SQLITE_PRIVATE void sqlite3DropIndex (Parse *, SrcList *, int)
 
SQLITE_PRIVATE int sqlite3Select (Parse *, Select *, SelectDest *)
 
SQLITE_PRIVATE Selectsqlite3SelectNew (Parse *, ExprList *, SrcList *, Expr *, ExprList *, Expr *, ExprList *, u16, Expr *, Expr *)
 
SQLITE_PRIVATE void sqlite3SelectDelete (sqlite3 *, Select *)
 
SQLITE_PRIVATE Tablesqlite3SrcListLookup (Parse *, SrcList *)
 
SQLITE_PRIVATE int sqlite3IsReadOnly (Parse *, Table *, int)
 
SQLITE_PRIVATE void sqlite3OpenTable (Parse *, int iCur, int iDb, Table *, int)
 
SQLITE_PRIVATE void sqlite3DeleteFrom (Parse *, SrcList *, Expr *)
 
SQLITE_PRIVATE void sqlite3Update (Parse *, SrcList *, ExprList *, Expr *, int)
 
SQLITE_PRIVATE WhereInfosqlite3WhereBegin (Parse *, SrcList *, Expr *, ExprList *, ExprList *, u16, int)
 
SQLITE_PRIVATE void sqlite3WhereEnd (WhereInfo *)
 
SQLITE_PRIVATE u64 sqlite3WhereOutputRowCount (WhereInfo *)
 
SQLITE_PRIVATE int sqlite3WhereIsDistinct (WhereInfo *)
 
SQLITE_PRIVATE int sqlite3WhereIsOrdered (WhereInfo *)
 
SQLITE_PRIVATE int sqlite3WhereIsSorted (WhereInfo *)
 
SQLITE_PRIVATE int sqlite3WhereContinueLabel (WhereInfo *)
 
SQLITE_PRIVATE int sqlite3WhereBreakLabel (WhereInfo *)
 
SQLITE_PRIVATE int sqlite3WhereOkOnePass (WhereInfo *, int *)
 
SQLITE_PRIVATE int sqlite3ExprCodeGetColumn (Parse *, Table *, int, int, int, u8)
 
SQLITE_PRIVATE void sqlite3ExprCodeGetColumnOfTable (Vdbe *, Table *, int, int, int)
 
SQLITE_PRIVATE void sqlite3ExprCodeMove (Parse *, int, int, int)
 
SQLITE_PRIVATE void sqlite3ExprCacheStore (Parse *, int, int, int)
 
SQLITE_PRIVATE void sqlite3ExprCachePush (Parse *)
 
SQLITE_PRIVATE void sqlite3ExprCachePop (Parse *)
 
SQLITE_PRIVATE void sqlite3ExprCacheRemove (Parse *, int, int)
 
SQLITE_PRIVATE void sqlite3ExprCacheClear (Parse *)
 
SQLITE_PRIVATE void sqlite3ExprCacheAffinityChange (Parse *, int, int)
 
SQLITE_PRIVATE void sqlite3ExprCode (Parse *, Expr *, int)
 
SQLITE_PRIVATE void sqlite3ExprCodeFactorable (Parse *, Expr *, int)
 
SQLITE_PRIVATE void sqlite3ExprCodeAtInit (Parse *, Expr *, int, u8)
 
SQLITE_PRIVATE int sqlite3ExprCodeTemp (Parse *, Expr *, int *)
 
SQLITE_PRIVATE int sqlite3ExprCodeTarget (Parse *, Expr *, int)
 
SQLITE_PRIVATE void sqlite3ExprCodeAndCache (Parse *, Expr *, int)
 
SQLITE_PRIVATE int sqlite3ExprCodeExprList (Parse *, ExprList *, int, u8)
 
SQLITE_PRIVATE void sqlite3ExprIfTrue (Parse *, Expr *, int, int)
 
SQLITE_PRIVATE void sqlite3ExprIfFalse (Parse *, Expr *, int, int)
 
SQLITE_PRIVATE Tablesqlite3FindTable (sqlite3 *, const char *, const char *)
 
SQLITE_PRIVATE Tablesqlite3LocateTable (Parse *, int isView, const char *, const char *)
 
SQLITE_PRIVATE Tablesqlite3LocateTableItem (Parse *, int isView, struct SrcList_item *)
 
SQLITE_PRIVATE Indexsqlite3FindIndex (sqlite3 *, const char *, const char *)
 
SQLITE_PRIVATE void sqlite3UnlinkAndDeleteTable (sqlite3 *, int, const char *)
 
SQLITE_PRIVATE void sqlite3UnlinkAndDeleteIndex (sqlite3 *, int, const char *)
 
SQLITE_PRIVATE void sqlite3Vacuum (Parse *)
 
SQLITE_PRIVATE int sqlite3RunVacuum (char **, sqlite3 *)
 
SQLITE_PRIVATE char * sqlite3NameFromToken (sqlite3 *, Token *)
 
SQLITE_PRIVATE int sqlite3ExprCompare (Expr *, Expr *, int)
 
SQLITE_PRIVATE int sqlite3ExprListCompare (ExprList *, ExprList *, int)
 
SQLITE_PRIVATE int sqlite3ExprImpliesExpr (Expr *, Expr *, int)
 
SQLITE_PRIVATE void sqlite3ExprAnalyzeAggregates (NameContext *, Expr *)
 
SQLITE_PRIVATE void sqlite3ExprAnalyzeAggList (NameContext *, ExprList *)
 
SQLITE_PRIVATE int sqlite3FunctionUsesThisSrc (Expr *, SrcList *)
 
SQLITE_PRIVATE Vdbesqlite3GetVdbe (Parse *)
 
SQLITE_PRIVATE void sqlite3PrngSaveState (void)
 
SQLITE_PRIVATE void sqlite3PrngRestoreState (void)
 
SQLITE_PRIVATE void sqlite3RollbackAll (sqlite3 *, int)
 
SQLITE_PRIVATE void sqlite3CodeVerifySchema (Parse *, int)
 
SQLITE_PRIVATE void sqlite3CodeVerifyNamedSchema (Parse *, const char *zDb)
 
SQLITE_PRIVATE void sqlite3BeginTransaction (Parse *, int)
 
SQLITE_PRIVATE void sqlite3CommitTransaction (Parse *)
 
SQLITE_PRIVATE void sqlite3RollbackTransaction (Parse *)
 
SQLITE_PRIVATE void sqlite3Savepoint (Parse *, int, Token *)
 
SQLITE_PRIVATE void sqlite3CloseSavepoints (sqlite3 *)
 
SQLITE_PRIVATE void sqlite3LeaveMutexAndCloseZombie (sqlite3 *)
 
SQLITE_PRIVATE int sqlite3ExprIsConstant (Expr *)
 
SQLITE_PRIVATE int sqlite3ExprIsConstantNotJoin (Expr *)
 
SQLITE_PRIVATE int sqlite3ExprIsConstantOrFunction (Expr *, u8)
 
SQLITE_PRIVATE int sqlite3ExprIsTableConstant (Expr *, int)
 
SQLITE_PRIVATE int sqlite3ExprIsInteger (Expr *, int *)
 
SQLITE_PRIVATE int sqlite3ExprCanBeNull (const Expr *)
 
SQLITE_PRIVATE int sqlite3ExprNeedsNoAffinityChange (const Expr *, char)
 
SQLITE_PRIVATE int sqlite3IsRowid (const char *)
 
SQLITE_PRIVATE void sqlite3GenerateRowDelete (Parse *, Table *, Trigger *, int, int, int, i16, u8, u8, u8)
 
SQLITE_PRIVATE void sqlite3GenerateRowIndexDelete (Parse *, Table *, int, int, int *)
 
SQLITE_PRIVATE int sqlite3GenerateIndexKey (Parse *, Index *, int, int, int, int *, Index *, int)
 
SQLITE_PRIVATE void sqlite3ResolvePartIdxLabel (Parse *, int)
 
SQLITE_PRIVATE void sqlite3GenerateConstraintChecks (Parse *, Table *, int *, int, int, int, int, u8, u8, int, int *)
 
SQLITE_PRIVATE void sqlite3CompleteInsertion (Parse *, Table *, int, int, int, int *, int, int, int)
 
SQLITE_PRIVATE int sqlite3OpenTableAndIndices (Parse *, Table *, int, int, u8 *, int *, int *)
 
SQLITE_PRIVATE void sqlite3BeginWriteOperation (Parse *, int, int)
 
SQLITE_PRIVATE void sqlite3MultiWrite (Parse *)
 
SQLITE_PRIVATE void sqlite3MayAbort (Parse *)
 
SQLITE_PRIVATE void sqlite3HaltConstraint (Parse *, int, int, char *, i8, u8)
 
SQLITE_PRIVATE void sqlite3UniqueConstraint (Parse *, int, Index *)
 
SQLITE_PRIVATE void sqlite3RowidConstraint (Parse *, int, Table *)
 
SQLITE_PRIVATE Exprsqlite3ExprDup (sqlite3 *, Expr *, int)
 
SQLITE_PRIVATE ExprListsqlite3ExprListDup (sqlite3 *, ExprList *, int)
 
SQLITE_PRIVATE SrcListsqlite3SrcListDup (sqlite3 *, SrcList *, int)
 
SQLITE_PRIVATE IdListsqlite3IdListDup (sqlite3 *, IdList *)
 
SQLITE_PRIVATE Selectsqlite3SelectDup (sqlite3 *, Select *, int)
 
SQLITE_PRIVATE void sqlite3FuncDefInsert (FuncDefHash *, FuncDef *)
 
SQLITE_PRIVATE FuncDefsqlite3FindFunction (sqlite3 *, const char *, int, int, u8, u8)
 
SQLITE_PRIVATE void sqlite3RegisterBuiltinFunctions (sqlite3 *)
 
SQLITE_PRIVATE void sqlite3RegisterDateTimeFunctions (void)
 
SQLITE_PRIVATE void sqlite3RegisterGlobalFunctions (void)
 
SQLITE_PRIVATE int sqlite3SafetyCheckOk (sqlite3 *)
 
SQLITE_PRIVATE int sqlite3SafetyCheckSickOrOk (sqlite3 *)
 
SQLITE_PRIVATE void sqlite3ChangeCookie (Parse *, int)
 
SQLITE_PRIVATE void sqlite3MaterializeView (Parse *, Table *, Expr *, int)
 
SQLITE_PRIVATE void sqlite3BeginTrigger (Parse *, Token *, Token *, int, int, IdList *, SrcList *, Expr *, int, int)
 
SQLITE_PRIVATE void sqlite3FinishTrigger (Parse *, TriggerStep *, Token *)
 
SQLITE_PRIVATE void sqlite3DropTrigger (Parse *, SrcList *, int)
 
SQLITE_PRIVATE void sqlite3DropTriggerPtr (Parse *, Trigger *)
 
SQLITE_PRIVATE Triggersqlite3TriggersExist (Parse *, Table *, int, ExprList *, int *pMask)
 
SQLITE_PRIVATE Triggersqlite3TriggerList (Parse *, Table *)
 
SQLITE_PRIVATE void sqlite3CodeRowTrigger (Parse *, Trigger *, int, ExprList *, int, Table *, int, int, int)
 
SQLITE_PRIVATE void sqlite3CodeRowTriggerDirect (Parse *, Trigger *, Table *, int, int, int)
 
void sqliteViewTriggers (Parse *, Table *, Expr *, int, ExprList *)
 
SQLITE_PRIVATE void sqlite3DeleteTriggerStep (sqlite3 *, TriggerStep *)
 
SQLITE_PRIVATE TriggerStepsqlite3TriggerSelectStep (sqlite3 *, Select *)
 
SQLITE_PRIVATE TriggerStepsqlite3TriggerInsertStep (sqlite3 *, Token *, IdList *, Select *, u8)
 
SQLITE_PRIVATE TriggerStepsqlite3TriggerUpdateStep (sqlite3 *, Token *, ExprList *, Expr *, u8)
 
SQLITE_PRIVATE TriggerStepsqlite3TriggerDeleteStep (sqlite3 *, Token *, Expr *)
 
SQLITE_PRIVATE void sqlite3DeleteTrigger (sqlite3 *, Trigger *)
 
SQLITE_PRIVATE void sqlite3UnlinkAndDeleteTrigger (sqlite3 *, int, const char *)
 
SQLITE_PRIVATE u32 sqlite3TriggerColmask (Parse *, Trigger *, ExprList *, int, int, Table *, int)
 
SQLITE_PRIVATE int sqlite3JoinType (Parse *, Token *, Token *, Token *)
 
SQLITE_PRIVATE void sqlite3CreateForeignKey (Parse *, ExprList *, Token *, ExprList *, int)
 
SQLITE_PRIVATE void sqlite3DeferForeignKey (Parse *, int)
 
SQLITE_PRIVATE void sqlite3AuthRead (Parse *, Expr *, Schema *, SrcList *)
 
SQLITE_PRIVATE int sqlite3AuthCheck (Parse *, int, const char *, const char *, const char *)
 
SQLITE_PRIVATE void sqlite3AuthContextPush (Parse *, AuthContext *, const char *)
 
SQLITE_PRIVATE void sqlite3AuthContextPop (AuthContext *)
 
SQLITE_PRIVATE int sqlite3AuthReadCol (Parse *, const char *, const char *, int)
 
SQLITE_PRIVATE void sqlite3Attach (Parse *, Expr *, Expr *, Expr *)
 
SQLITE_PRIVATE void sqlite3Detach (Parse *, Expr *)
 
SQLITE_PRIVATE void sqlite3FixInit (DbFixer *, Parse *, int, const char *, const Token *)
 
SQLITE_PRIVATE int sqlite3FixSrcList (DbFixer *, SrcList *)
 
SQLITE_PRIVATE int sqlite3FixSelect (DbFixer *, Select *)
 
SQLITE_PRIVATE int sqlite3FixExpr (DbFixer *, Expr *)
 
SQLITE_PRIVATE int sqlite3FixExprList (DbFixer *, ExprList *)
 
SQLITE_PRIVATE int sqlite3FixTriggerStep (DbFixer *, TriggerStep *)
 
SQLITE_PRIVATE int sqlite3AtoF (const char *z, double *, int, u8)
 
SQLITE_PRIVATE int sqlite3GetInt32 (const char *, int *)
 
SQLITE_PRIVATE int sqlite3Atoi (const char *)
 
SQLITE_PRIVATE int sqlite3Utf16ByteLen (const void *pData, int nChar)
 
SQLITE_PRIVATE int sqlite3Utf8CharLen (const char *pData, int nByte)
 
SQLITE_PRIVATE u32 sqlite3Utf8Read (const u8 **)
 
SQLITE_PRIVATE LogEst sqlite3LogEst (u64)
 
SQLITE_PRIVATE LogEst sqlite3LogEstAdd (LogEst, LogEst)
 
SQLITE_PRIVATE LogEst sqlite3LogEstFromDouble (double)
 
SQLITE_PRIVATE u64 sqlite3LogEstToInt (LogEst)
 
SQLITE_PRIVATE int sqlite3PutVarint (unsigned char *, u64)
 
SQLITE_PRIVATE u8 sqlite3GetVarint (const unsigned char *, u64 *)
 
SQLITE_PRIVATE u8 sqlite3GetVarint32 (const unsigned char *, u32 *)
 
SQLITE_PRIVATE int sqlite3VarintLen (u64 v)
 
SQLITE_PRIVATE const char * sqlite3IndexAffinityStr (Vdbe *, Index *)
 
SQLITE_PRIVATE void sqlite3TableAffinity (Vdbe *, Table *, int)
 
SQLITE_PRIVATE char sqlite3CompareAffinity (Expr *pExpr, char aff2)
 
SQLITE_PRIVATE int sqlite3IndexAffinityOk (Expr *pExpr, char idx_affinity)
 
SQLITE_PRIVATE char sqlite3ExprAffinity (Expr *pExpr)
 
SQLITE_PRIVATE int sqlite3Atoi64 (const char *, i64 *, int, u8)
 
SQLITE_PRIVATE int sqlite3DecOrHexToI64 (const char *, i64 *)
 
SQLITE_PRIVATE void sqlite3ErrorWithMsg (sqlite3 *, int, const char *,...)
 
SQLITE_PRIVATE void sqlite3Error (sqlite3 *, int)
 
SQLITE_PRIVATE void * sqlite3HexToBlob (sqlite3 *, const char *z, int n)
 
SQLITE_PRIVATE u8 sqlite3HexToInt (int h)
 
SQLITE_PRIVATE int sqlite3TwoPartName (Parse *, Token *, Token *, Token **)
 
SQLITE_PRIVATE const char * sqlite3ErrStr (int)
 
SQLITE_PRIVATE int sqlite3ReadSchema (Parse *pParse)
 
SQLITE_PRIVATE CollSeqsqlite3FindCollSeq (sqlite3 *, u8 enc, const char *, int)
 
SQLITE_PRIVATE CollSeqsqlite3LocateCollSeq (Parse *pParse, const char *zName)
 
SQLITE_PRIVATE CollSeqsqlite3ExprCollSeq (Parse *pParse, Expr *pExpr)
 
SQLITE_PRIVATE Exprsqlite3ExprAddCollateToken (Parse *pParse, Expr *, const Token *, int)
 
SQLITE_PRIVATE Exprsqlite3ExprAddCollateString (Parse *, Expr *, const char *)
 
SQLITE_PRIVATE Exprsqlite3ExprSkipCollate (Expr *)
 
SQLITE_PRIVATE int sqlite3CheckCollSeq (Parse *, CollSeq *)
 
SQLITE_PRIVATE int sqlite3CheckObjectName (Parse *, const char *)
 
SQLITE_PRIVATE void sqlite3VdbeSetChanges (sqlite3 *, int)
 
SQLITE_PRIVATE int sqlite3AddInt64 (i64 *, i64)
 
SQLITE_PRIVATE int sqlite3SubInt64 (i64 *, i64)
 
SQLITE_PRIVATE int sqlite3MulInt64 (i64 *, i64)
 
SQLITE_PRIVATE int sqlite3AbsInt32 (int)
 
SQLITE_PRIVATE u8 sqlite3GetBoolean (const char *z, u8)
 
SQLITE_PRIVATE const void * sqlite3ValueText (sqlite3_value *, u8)
 
SQLITE_PRIVATE int sqlite3ValueBytes (sqlite3_value *, u8)
 
SQLITE_PRIVATE void sqlite3ValueSetStr (sqlite3_value *, int, const void *, u8, void(*)(void *))
 
SQLITE_PRIVATE void sqlite3ValueSetNull (sqlite3_value *)
 
SQLITE_PRIVATE void sqlite3ValueFree (sqlite3_value *)
 
SQLITE_PRIVATE sqlite3_value * sqlite3ValueNew (sqlite3 *)
 
SQLITE_PRIVATE char * sqlite3Utf16to8 (sqlite3 *, const void *, int, u8)
 
SQLITE_PRIVATE int sqlite3ValueFromExpr (sqlite3 *, Expr *, u8, u8, sqlite3_value **)
 
SQLITE_PRIVATE void sqlite3ValueApplyAffinity (sqlite3_value *, u8, u8)
 
SQLITE_PRIVATE void sqlite3RootPageMoved (sqlite3 *, int, int, int)
 
SQLITE_PRIVATE void sqlite3Reindex (Parse *, Token *, Token *)
 
SQLITE_PRIVATE void sqlite3AlterFunctions (void)
 
SQLITE_PRIVATE void sqlite3AlterRenameTable (Parse *, SrcList *, Token *)
 
SQLITE_PRIVATE int sqlite3GetToken (const unsigned char *, int *)
 
SQLITE_PRIVATE void sqlite3NestedParse (Parse *, const char *,...)
 
SQLITE_PRIVATE void sqlite3ExpirePreparedStatements (sqlite3 *)
 
SQLITE_PRIVATE int sqlite3CodeSubselect (Parse *, Expr *, int, int)
 
SQLITE_PRIVATE void sqlite3SelectPrep (Parse *, Select *, NameContext *)
 
SQLITE_PRIVATE int sqlite3MatchSpanName (const char *, const char *, const char *, const char *)
 
SQLITE_PRIVATE int sqlite3ResolveExprNames (NameContext *, Expr *)
 
SQLITE_PRIVATE void sqlite3ResolveSelectNames (Parse *, Select *, NameContext *)
 
SQLITE_PRIVATE void sqlite3ResolveSelfReference (Parse *, Table *, int, Expr *, ExprList *)
 
SQLITE_PRIVATE int sqlite3ResolveOrderGroupBy (Parse *, Select *, ExprList *, const char *)
 
SQLITE_PRIVATE void sqlite3ColumnDefault (Vdbe *, Table *, int, int)
 
SQLITE_PRIVATE void sqlite3AlterFinishAddColumn (Parse *, Token *)
 
SQLITE_PRIVATE void sqlite3AlterBeginAddColumn (Parse *, SrcList *)
 
SQLITE_PRIVATE CollSeqsqlite3GetCollSeq (Parse *, u8, CollSeq *, const char *)
 
SQLITE_PRIVATE char sqlite3AffinityType (const char *, u8 *)
 
SQLITE_PRIVATE void sqlite3Analyze (Parse *, Token *, Token *)
 
SQLITE_PRIVATE int sqlite3InvokeBusyHandler (BusyHandler *)
 
SQLITE_PRIVATE int sqlite3FindDb (sqlite3 *, Token *)
 
SQLITE_PRIVATE int sqlite3FindDbName (sqlite3 *, const char *)
 
SQLITE_PRIVATE int sqlite3AnalysisLoad (sqlite3 *, int iDB)
 
SQLITE_PRIVATE void sqlite3DeleteIndexSamples (sqlite3 *, Index *)
 
SQLITE_PRIVATE void sqlite3DefaultRowEst (Index *)
 
SQLITE_PRIVATE void sqlite3RegisterLikeFunctions (sqlite3 *, int)
 
SQLITE_PRIVATE int sqlite3IsLikeFunction (sqlite3 *, Expr *, int *, char *)
 
SQLITE_PRIVATE void sqlite3MinimumFileFormat (Parse *, int, int)
 
SQLITE_PRIVATE void sqlite3SchemaClear (void *)
 
SQLITE_PRIVATE Schemasqlite3SchemaGet (sqlite3 *, Btree *)
 
SQLITE_PRIVATE int sqlite3SchemaToIndex (sqlite3 *db, Schema *)
 
SQLITE_PRIVATE KeyInfosqlite3KeyInfoAlloc (sqlite3 *, int, int)
 
SQLITE_PRIVATE void sqlite3KeyInfoUnref (KeyInfo *)
 
SQLITE_PRIVATE KeyInfosqlite3KeyInfoRef (KeyInfo *)
 
SQLITE_PRIVATE KeyInfosqlite3KeyInfoOfIndex (Parse *, Index *)
 
SQLITE_PRIVATE int sqlite3CreateFunc (sqlite3 *, const char *, int, int, void *, void(*)(sqlite3_context *, int, sqlite3_value **), void(*)(sqlite3_context *, int, sqlite3_value **), void(*)(sqlite3_context *), FuncDestructor *pDestructor)
 
SQLITE_PRIVATE int sqlite3ApiExit (sqlite3 *db, int)
 
SQLITE_PRIVATE int sqlite3OpenTempDatabase (Parse *)
 
SQLITE_PRIVATE void sqlite3StrAccumInit (StrAccum *, char *, int, int)
 
SQLITE_PRIVATE void sqlite3StrAccumAppend (StrAccum *, const char *, int)
 
SQLITE_PRIVATE void sqlite3StrAccumAppendAll (StrAccum *, const char *)
 
SQLITE_PRIVATE void sqlite3AppendChar (StrAccum *, int, char)
 
SQLITE_PRIVATE char * sqlite3StrAccumFinish (StrAccum *)
 
SQLITE_PRIVATE void sqlite3StrAccumReset (StrAccum *)
 
SQLITE_PRIVATE void sqlite3SelectDestInit (SelectDest *, int, int)
 
SQLITE_PRIVATE Exprsqlite3CreateColumnExpr (sqlite3 *, SrcList *, int, int)
 
SQLITE_PRIVATE void sqlite3BackupRestart (sqlite3_backup *)
 
SQLITE_PRIVATE void sqlite3BackupUpdate (sqlite3_backup *, Pgno, const u8 *)
 
SQLITE_PRIVATE void * sqlite3ParserAlloc (void *(*)(u64))
 
SQLITE_PRIVATE void sqlite3ParserFree (void *, void(*)(void *))
 
SQLITE_PRIVATE void sqlite3Parser (void *, int, Token, Parse *)
 
SQLITE_PRIVATE void sqlite3AutoLoadExtensions (sqlite3 *)
 
SQLITE_PRIVATE void sqlite3CloseExtensions (sqlite3 *)
 
SQLITE_PRIVATE void sqlite3TableLock (Parse *, int, int, u8, const char *)
 
SQLITE_PRIVATE void sqlite3VtabClear (sqlite3 *db, Table *)
 
SQLITE_PRIVATE void sqlite3VtabDisconnect (sqlite3 *db, Table *p)
 
SQLITE_PRIVATE int sqlite3VtabSync (sqlite3 *db, Vdbe *)
 
SQLITE_PRIVATE int sqlite3VtabRollback (sqlite3 *db)
 
SQLITE_PRIVATE int sqlite3VtabCommit (sqlite3 *db)
 
SQLITE_PRIVATE void sqlite3VtabLock (VTable *)
 
SQLITE_PRIVATE void sqlite3VtabUnlock (VTable *)
 
SQLITE_PRIVATE void sqlite3VtabUnlockList (sqlite3 *)
 
SQLITE_PRIVATE int sqlite3VtabSavepoint (sqlite3 *, int, int)
 
SQLITE_PRIVATE void sqlite3VtabImportErrmsg (Vdbe *, sqlite3_vtab *)
 
SQLITE_PRIVATE VTablesqlite3GetVTable (sqlite3 *, Table *)
 
SQLITE_PRIVATE void sqlite3VtabMakeWritable (Parse *, Table *)
 
SQLITE_PRIVATE void sqlite3VtabBeginParse (Parse *, Token *, Token *, Token *, int)
 
SQLITE_PRIVATE void sqlite3VtabFinishParse (Parse *, Token *)
 
SQLITE_PRIVATE void sqlite3VtabArgInit (Parse *)
 
SQLITE_PRIVATE void sqlite3VtabArgExtend (Parse *, Token *)
 
SQLITE_PRIVATE int sqlite3VtabCallCreate (sqlite3 *, int, const char *, char **)
 
SQLITE_PRIVATE int sqlite3VtabCallConnect (Parse *, Table *)
 
SQLITE_PRIVATE int sqlite3VtabCallDestroy (sqlite3 *, int, const char *)
 
SQLITE_PRIVATE int sqlite3VtabBegin (sqlite3 *, VTable *)
 
SQLITE_PRIVATE FuncDefsqlite3VtabOverloadFunction (sqlite3 *, FuncDef *, int nArg, Expr *)
 
SQLITE_PRIVATE void sqlite3InvalidFunction (sqlite3_context *, int, sqlite3_value **)
 
SQLITE_PRIVATE sqlite3_int64 sqlite3StmtCurrentTime (sqlite3_context *)
 
SQLITE_PRIVATE int sqlite3VdbeParameterIndex (Vdbe *, const char *, int)
 
SQLITE_PRIVATE int sqlite3TransferBindings (sqlite3_stmt *, sqlite3_stmt *)
 
SQLITE_PRIVATE void sqlite3ParserReset (Parse *)
 
SQLITE_PRIVATE int sqlite3Reprepare (Vdbe *)
 
SQLITE_PRIVATE void sqlite3ExprListCheckLength (Parse *, ExprList *, const char *)
 
SQLITE_PRIVATE CollSeqsqlite3BinaryCompareCollSeq (Parse *, Expr *, Expr *)
 
SQLITE_PRIVATE int sqlite3TempInMemory (const sqlite3 *)
 
SQLITE_PRIVATE const char * sqlite3JournalModename (int)
 
SQLITE_PRIVATE int sqlite3Checkpoint (sqlite3 *, int, int, int *, int *)
 
SQLITE_PRIVATE int sqlite3WalDefaultHook (void *, sqlite3 *, const char *, int)
 
SQLITE_PRIVATE Withsqlite3WithAdd (Parse *, With *, Token *, ExprList *, Select *)
 
SQLITE_PRIVATE void sqlite3WithDelete (sqlite3 *, With *)
 
SQLITE_PRIVATE void sqlite3WithPush (Parse *, With *, u8)
 
SQLITE_PRIVATE void sqlite3FkCheck (Parse *, Table *, int, int, int *, int)
 
SQLITE_PRIVATE void sqlite3FkDropTable (Parse *, SrcList *, Table *)
 
SQLITE_PRIVATE void sqlite3FkActions (Parse *, Table *, ExprList *, int, int *, int)
 
SQLITE_PRIVATE int sqlite3FkRequired (Parse *, Table *, int *, int)
 
SQLITE_PRIVATE u32 sqlite3FkOldmask (Parse *, Table *)
 
SQLITE_PRIVATE FKeysqlite3FkReferences (Table *)
 
SQLITE_PRIVATE void sqlite3FkDelete (sqlite3 *, Table *)
 
SQLITE_PRIVATE int sqlite3FkLocateIndex (Parse *, Table *, FKey *, Index **, int **)
 
SQLITE_PRIVATE void sqlite3BeginBenignMalloc (void)
 
SQLITE_PRIVATE void sqlite3EndBenignMalloc (void)
 
SQLITE_PRIVATE int sqlite3FindInIndex (Parse *, Expr *, u32, int *)
 
SQLITE_PRIVATE void sqlite3MemJournalOpen (sqlite3_file *)
 
SQLITE_PRIVATE int sqlite3MemJournalSize (void)
 
SQLITE_PRIVATE int sqlite3IsMemJournal (sqlite3_file *)
 
SQLITE_PRIVATE void sqlite3ExprSetHeightAndFlags (Parse *pParse, Expr *p)
 
SQLITE_PRIVATE int sqlite3SelectExprHeight (Select *)
 
SQLITE_PRIVATE int sqlite3ExprCheckHeight (Parse *, int)
 
SQLITE_PRIVATE u32 sqlite3Get4byte (const u8 *)
 
SQLITE_PRIVATE void sqlite3Put4byte (u8 *, u32)
 
SQLITE_PRIVATE int sqlite3ThreadCreate (SQLiteThread **, void *(*)(void *), void *)
 
SQLITE_PRIVATE int sqlite3ThreadJoin (SQLiteThread *, void **)
 
SQLITE_PRIVATE void sqlite3VdbeFreeCursor (Vdbe *, VdbeCursor *)
 
void sqliteVdbePopStack (Vdbe *, int)
 
SQLITE_PRIVATE int sqlite3VdbeCursorMoveto (VdbeCursor *)
 
SQLITE_PRIVATE int sqlite3VdbeCursorRestore (VdbeCursor *)
 
SQLITE_PRIVATE u32 sqlite3VdbeSerialTypeLen (u32)
 
SQLITE_PRIVATE u32 sqlite3VdbeSerialType (Mem *, int)
 
SQLITE_PRIVATE u32 sqlite3VdbeSerialPut (unsigned char *, Mem *, u32)
 
SQLITE_PRIVATE u32 sqlite3VdbeSerialGet (const unsigned char *, u32, Mem *)
 
SQLITE_PRIVATE void sqlite3VdbeDeleteAuxData (Vdbe *, int, int)
 
int sqlite2BtreeKeyCompare (BtCursor *, const void *, int, int, int *)
 
SQLITE_PRIVATE int sqlite3VdbeIdxKeyCompare (sqlite3 *, VdbeCursor *, UnpackedRecord *, int *)
 
SQLITE_PRIVATE int sqlite3VdbeIdxRowid (sqlite3 *, BtCursor *, i64 *)
 
SQLITE_PRIVATE int sqlite3VdbeExec (Vdbe *)
 
SQLITE_PRIVATE int sqlite3VdbeList (Vdbe *)
 
SQLITE_PRIVATE int sqlite3VdbeHalt (Vdbe *)
 
SQLITE_PRIVATE int sqlite3VdbeChangeEncoding (Mem *, int)
 
SQLITE_PRIVATE int sqlite3VdbeMemTooBig (Mem *)
 
SQLITE_PRIVATE int sqlite3VdbeMemCopy (Mem *, const Mem *)
 
SQLITE_PRIVATE void sqlite3VdbeMemShallowCopy (Mem *, const Mem *, int)
 
SQLITE_PRIVATE void sqlite3VdbeMemMove (Mem *, Mem *)
 
SQLITE_PRIVATE int sqlite3VdbeMemNulTerminate (Mem *)
 
SQLITE_PRIVATE int sqlite3VdbeMemSetStr (Mem *, const char *, int, u8, void(*)(void *))
 
SQLITE_PRIVATE void sqlite3VdbeMemSetInt64 (Mem *, i64)
 
SQLITE_PRIVATE void sqlite3VdbeMemSetDouble (Mem *, double)
 
SQLITE_PRIVATE void sqlite3VdbeMemInit (Mem *, sqlite3 *, u16)
 
SQLITE_PRIVATE void sqlite3VdbeMemSetNull (Mem *)
 
SQLITE_PRIVATE void sqlite3VdbeMemSetZeroBlob (Mem *, int)
 
SQLITE_PRIVATE void sqlite3VdbeMemSetRowSet (Mem *)
 
SQLITE_PRIVATE int sqlite3VdbeMemMakeWriteable (Mem *)
 
SQLITE_PRIVATE int sqlite3VdbeMemStringify (Mem *, u8, u8)
 
SQLITE_PRIVATE i64 sqlite3VdbeIntValue (Mem *)
 
SQLITE_PRIVATE int sqlite3VdbeMemIntegerify (Mem *)
 
SQLITE_PRIVATE double sqlite3VdbeRealValue (Mem *)
 
SQLITE_PRIVATE void sqlite3VdbeIntegerAffinity (Mem *)
 
SQLITE_PRIVATE int sqlite3VdbeMemRealify (Mem *)
 
SQLITE_PRIVATE int sqlite3VdbeMemNumerify (Mem *)
 
SQLITE_PRIVATE void sqlite3VdbeMemCast (Mem *, u8, u8)
 
SQLITE_PRIVATE int sqlite3VdbeMemFromBtree (BtCursor *, u32, u32, int, Mem *)
 
SQLITE_PRIVATE void sqlite3VdbeMemRelease (Mem *p)
 
SQLITE_PRIVATE int sqlite3VdbeMemFinalize (Mem *, FuncDef *)
 
SQLITE_PRIVATE const char * sqlite3OpcodeName (int)
 
SQLITE_PRIVATE int sqlite3VdbeMemGrow (Mem *pMem, int n, int preserve)
 
SQLITE_PRIVATE int sqlite3VdbeMemClearAndResize (Mem *pMem, int n)
 
SQLITE_PRIVATE int sqlite3VdbeCloseStatement (Vdbe *, int)
 
SQLITE_PRIVATE void sqlite3VdbeFrameDelete (VdbeFrame *)
 
SQLITE_PRIVATE int sqlite3VdbeFrameRestore (VdbeFrame *)
 
SQLITE_PRIVATE int sqlite3VdbeTransferError (Vdbe *p)
 
SQLITE_PRIVATE int sqlite3VdbeSorterInit (sqlite3 *, int, VdbeCursor *)
 
SQLITE_PRIVATE void sqlite3VdbeSorterReset (sqlite3 *, VdbeSorter *)
 
SQLITE_PRIVATE void sqlite3VdbeSorterClose (sqlite3 *, VdbeCursor *)
 
SQLITE_PRIVATE int sqlite3VdbeSorterRowkey (const VdbeCursor *, Mem *)
 
SQLITE_PRIVATE int sqlite3VdbeSorterNext (sqlite3 *, const VdbeCursor *, int *)
 
SQLITE_PRIVATE int sqlite3VdbeSorterRewind (const VdbeCursor *, int *)
 
SQLITE_PRIVATE int sqlite3VdbeSorterWrite (const VdbeCursor *, Mem *)
 
SQLITE_PRIVATE int sqlite3VdbeSorterCompare (const VdbeCursor *, Mem *, int, int *)
 
SQLITE_PRIVATE void sqlite3VdbeEnter (Vdbe *)
 
SQLITE_PRIVATE void sqlite3VdbeLeave (Vdbe *)
 
SQLITE_PRIVATE int sqlite3VdbeCheckFk (Vdbe *, int)
 
SQLITE_PRIVATE int sqlite3VdbeMemTranslate (Mem *, u8)
 
SQLITE_PRIVATE int sqlite3VdbeMemHandleBom (Mem *pMem)
 
SQLITE_PRIVATE int sqlite3VdbeMemExpandBlob (Mem *)
 
SQLITE_API int SQLITE_STDCALL sqlite3_memory_alarm (void(*xCallback)(void *pArg, sqlite3_int64 used, int N), void *pArg, sqlite3_int64 iThreshold)
 
SQLITE_PRIVATE int sqlite3ThreadCreate (SQLiteThread **ppThread, void *(*xTask)(void *), void *pIn)
 
SQLITE_PRIVATE u32 sqlite3Utf8Read (const unsigned char **pz)
 
SQLITE_PRIVATE void sqlite3Put4byte (unsigned char *p, u32 v)
 
 IOMETHODS (posixIoFinder, posixIoMethods, IOMETHODS(3, unixClose, unixLock, unixUnlock, unixCheckReservedLock, unixShmMap)
 
SQLITE_PRIVATE int sqlite3WalOpen (sqlite3_vfs *, sqlite3_file *, const char *, int, i64, Wal **)
 
SQLITE_PRIVATE int sqlite3WalClose (Wal *pWal, int sync_flags, int, u8 *)
 
SQLITE_PRIVATE void sqlite3WalLimit (Wal *, i64)
 
SQLITE_PRIVATE int sqlite3WalBeginReadTransaction (Wal *pWal, int *)
 
SQLITE_PRIVATE void sqlite3WalEndReadTransaction (Wal *pWal)
 
SQLITE_PRIVATE int sqlite3WalFindFrame (Wal *, Pgno, u32 *)
 
SQLITE_PRIVATE int sqlite3WalReadFrame (Wal *, u32, int, u8 *)
 
SQLITE_PRIVATE Pgno sqlite3WalDbsize (Wal *pWal)
 
SQLITE_PRIVATE int sqlite3WalBeginWriteTransaction (Wal *pWal)
 
SQLITE_PRIVATE int sqlite3WalEndWriteTransaction (Wal *pWal)
 
SQLITE_PRIVATE int sqlite3WalUndo (Wal *pWal, int(*xUndo)(void *, Pgno), void *pUndoCtx)
 
SQLITE_PRIVATE void sqlite3WalSavepoint (Wal *pWal, u32 *aWalData)
 
SQLITE_PRIVATE int sqlite3WalSavepointUndo (Wal *pWal, u32 *aWalData)
 
SQLITE_PRIVATE int sqlite3WalFrames (Wal *pWal, int, PgHdr *, Pgno, int, int)
 
SQLITE_PRIVATE int sqlite3WalCheckpoint (Wal *pWal, int eMode, int(*xBusy)(void *), void *pBusyArg, int sync_flags, int nBuf, u8 *zBuf, int *pnLog, int *pnCkpt)
 
SQLITE_PRIVATE int sqlite3WalCallback (Wal *pWal)
 
SQLITE_PRIVATE int sqlite3WalExclusiveMode (Wal *pWal, int op)
 
SQLITE_PRIVATE int sqlite3WalHeapMemory (Wal *pWal)
 
SQLITE_PRIVATE int sqlite3PagerWrite (PgHdr *pPg)
 
SQLITE_PRIVATE void sqlite3PagerDontWrite (PgHdr *pPg)
 
SQLITE_PRIVATE u32 sqlite3VdbeSerialPut (u8 *buf, Mem *pMem, u32 serial_type)
 
SQLITE_PRIVATE void * sqlite3ParserAlloc (void *(*mallocProc)(u64))
 
SQLITE_PRIVATE void sqlite3Parser (void *yyp, int yymajor, sqlite3ParserTOKENTYPE yyminorsqlite3ParserARG_PDECL)
 

Variables

SQLITE_API const char sqlite3_version [] = SQLITE_VERSION
 
SQLITE_API char * sqlite3_temp_directory = 0
 
SQLITE_API char * sqlite3_data_directory = 0
 
SQLITE_PRIVATE const int sqlite3one = 1
 
SQLITE_PRIVATE void(*)(void) sqlite3OsDlSym (sqlite3_vfs *, void *, const char *)
 
SQLITE_PRIVATE const unsigned char sqlite3UpperToLower []
 
SQLITE_PRIVATE const unsigned char sqlite3CtypeMap [256]
 
SQLITE_PRIVATE SQLITE_WSD struct Sqlite3Config sqlite3Config
 
SQLITE_PRIVATE SQLITE_WSD FuncDefHash sqlite3GlobalFunctions
 
SQLITE_PRIVATE const Token sqlite3IntTokens []
 
SQLITE_PRIVATE int sqlite3PendingByte = 0x40000000
 
SQLITE_PRIVATE const unsigned char sqlite3OpcodeProperty [] = OPFLG_INITIALIZER
 

Macro Definition Documentation

#define _BTREE_H_

Definition at line 9333 of file sqlite3.c.

#define _FILE_OFFSET_BITS   64

Definition at line 156 of file sqlite3.c.

#define _FTSINT_H

Definition at line 132398 of file sqlite3.c.

#define _LARGE_FILE   1

Definition at line 154 of file sqlite3.c.

#define _LARGEFILE_SOURCE   1

Definition at line 158 of file sqlite3.c.

#define _MSVC_H_

Definition at line 66 of file sqlite3.c.

#define _OS_COMMON_H_

Definition at line 25548 of file sqlite3.c.

#define _OS_SETUP_H_

Definition at line 10524 of file sqlite3.c.

#define _PAGER_H_

Definition at line 10106 of file sqlite3.c.

#define _SQLITE3_H_

Definition at line 241 of file sqlite3.c.

#define _SQLITE3EXT_H_

Definition at line 101884 of file sqlite3.c.

#define _SQLITE3RTREE_H_

Definition at line 7938 of file sqlite3.c.

#define _SQLITE_HASH_H_

Definition at line 8546 of file sqlite3.c.

#define _SQLITE_OS_C_   1

Definition at line 16480 of file sqlite3.c.

#define _SQLITE_OS_H_

Definition at line 10500 of file sqlite3.c.

#define _SQLITE_VDBE_H_

Definition at line 9614 of file sqlite3.c.

#define _SQLITEINT_H_

Definition at line 41 of file sqlite3.c.

#define _VDBEINT_H_

Definition at line 14518 of file sqlite3.c.

#define _WAL_H_

Definition at line 41565 of file sqlite3.c.

#define _XOPEN_SOURCE   600

Definition at line 8412 of file sqlite3.c.

#define ADDR (   X)    (-1-(X))

Definition at line 9749 of file sqlite3.c.

#define addScanStatus (   a,
  b,
  c,
 
)    ((void)d)

Definition at line 119392 of file sqlite3.c.

#define AGGREGATE (   zName,
  nArg,
  arg,
  nc,
  xStep,
  xFinal 
)
Value:
SQLITE_INT_TO_PTR(arg), 0, 0, xStep,xFinal,#zName,0,0}
#define SQLITE_UTF8
Definition: sqlite3.c:4463
#define SQLITE_INT_TO_PTR(X)
Definition: sqlite3.c:8306
#define SQLITE_FUNC_NEEDCOLL
Definition: sqlite3.c:11244

Definition at line 11296 of file sqlite3.c.

#define AGGREGATE2 (   zName,
  nArg,
  arg,
  nc,
  xStep,
  xFinal,
  extraFlags 
)
Value:
{nArg, SQLITE_UTF8|(nc*SQLITE_FUNC_NEEDCOLL)|extraFlags, \
SQLITE_INT_TO_PTR(arg), 0, 0, xStep,xFinal,#zName,0,0}
#define SQLITE_UTF8
Definition: sqlite3.c:4463
#define SQLITE_INT_TO_PTR(X)
Definition: sqlite3.c:8306
#define SQLITE_FUNC_NEEDCOLL
Definition: sqlite3.c:11244

Definition at line 11299 of file sqlite3.c.

#define ALWAYS (   X)    (X)

Definition at line 8508 of file sqlite3.c.

#define ApplyCostMultiplier (   C,
 
)

Definition at line 120853 of file sqlite3.c.

#define ArraySize (   X)    ((int)(sizeof(X)/sizeof(X[0])))

Definition at line 9198 of file sqlite3.c.

#define assertCellInfo (   x)

Definition at line 57055 of file sqlite3.c.

#define assertParentIndex (   x,
  y,
 
)

Definition at line 57630 of file sqlite3.c.

#define assertTruncateConstraint (   pPager)

Definition at line 45487 of file sqlite3.c.

#define BITVEC_HASH (   X)    (((X)*1)%BITVEC_NINT)

Definition at line 38944 of file sqlite3.c.

#define BITVEC_MXHASH   (BITVEC_NINT/2)

Definition at line 38939 of file sqlite3.c.

#define BITVEC_NBIT   (BITVEC_NELEM*BITVEC_SZELEM)

Definition at line 38933 of file sqlite3.c.

#define BITVEC_NELEM   (BITVEC_USIZE/sizeof(BITVEC_TELEM))

Definition at line 38931 of file sqlite3.c.

#define BITVEC_NINT   (BITVEC_USIZE/sizeof(u32))

Definition at line 38936 of file sqlite3.c.

#define BITVEC_NPTR   (BITVEC_USIZE/sizeof(Bitvec *))

Definition at line 38946 of file sqlite3.c.

#define BITVEC_SZ   512

Definition at line 38917 of file sqlite3.c.

#define BITVEC_SZELEM   8

Definition at line 38929 of file sqlite3.c.

#define BITVEC_TELEM   u8

Definition at line 38927 of file sqlite3.c.

#define BITVEC_USIZE   (((BITVEC_SZ-(3*sizeof(u32)))/sizeof(Bitvec*))*sizeof(Bitvec*))

Definition at line 38921 of file sqlite3.c.

#define BMS   ((int)(sizeof(Bitmask)*8))

Definition at line 12116 of file sqlite3.c.

#define BTALLOC_ANY   0 /* Allocate any page */

Definition at line 53131 of file sqlite3.c.

#define BTALLOC_EXACT   1 /* Allocate exact page if possible */

Definition at line 53132 of file sqlite3.c.

#define BTALLOC_LE   2 /* Allocate any page <= the parameter */

Definition at line 53133 of file sqlite3.c.

#define BTCF_AtLast   0x08 /* Cursor is pointing ot the last entry */

Definition at line 52642 of file sqlite3.c.

#define BTCF_Incrblob   0x10 /* True if an incremental I/O handle */

Definition at line 52643 of file sqlite3.c.

#define BTCF_ValidNKey   0x02 /* True if info.nKey is valid */

Definition at line 52640 of file sqlite3.c.

#define BTCF_ValidOvfl   0x04 /* True if aOverflow is valid */

Definition at line 52641 of file sqlite3.c.

#define BTCF_WriteFlag   0x01 /* True if a write cursor */

Definition at line 52639 of file sqlite3.c.

#define BTCURSOR_MAX_DEPTH   20

Definition at line 52594 of file sqlite3.c.

#define BTREE_APPLICATION_ID   8

Definition at line 9465 of file sqlite3.c.

#define BTREE_AUTOVACUUM_FULL   1 /* Do full auto-vacuum */

Definition at line 9349 of file sqlite3.c.

#define BTREE_AUTOVACUUM_INCR   2 /* Incremental vacuum */

Definition at line 9350 of file sqlite3.c.

#define BTREE_AUTOVACUUM_NONE   0 /* Do not do auto-vacuum */

Definition at line 9348 of file sqlite3.c.

#define BTREE_BLOBKEY   2 /* Table has keys only - no data */

Definition at line 9428 of file sqlite3.c.

#define BTREE_BULKLOAD   0x00000001 /* Used to full index in sorted order */

Definition at line 9481 of file sqlite3.c.

#define BTREE_DATA_VERSION   15 /* A virtual meta-value */

Definition at line 9466 of file sqlite3.c.

#define BTREE_DEFAULT_CACHE_SIZE   3

Definition at line 9460 of file sqlite3.c.

#define BTREE_FILE_FORMAT   2

Definition at line 9459 of file sqlite3.c.

#define BTREE_FREE_PAGE_COUNT   0

Definition at line 9457 of file sqlite3.c.

#define BTREE_INCR_VACUUM   7

Definition at line 9464 of file sqlite3.c.

#define BTREE_INTKEY   1 /* Table has only 64-bit signed integer keys */

Definition at line 9427 of file sqlite3.c.

#define BTREE_LARGEST_ROOT_PAGE   4

Definition at line 9461 of file sqlite3.c.

#define BTREE_MEMORY   2 /* This is an in-memory DB */

Definition at line 9376 of file sqlite3.c.

#define BTREE_OMIT_JOURNAL   1 /* Do not create or use a rollback journal */

Definition at line 9375 of file sqlite3.c.

#define BTREE_SCHEMA_VERSION   1

Definition at line 9458 of file sqlite3.c.

#define BTREE_SEEK_EQ   0x00000002 /* EQ seeks only - no range seeks */

Definition at line 9482 of file sqlite3.c.

#define BTREE_SINGLE   4 /* The file contains at most 1 b-tree */

Definition at line 9377 of file sqlite3.c.

#define BTREE_TEXT_ENCODING   5

Definition at line 9462 of file sqlite3.c.

#define BTREE_UNORDERED   8 /* Use of a hash implementation is OK */

Definition at line 9378 of file sqlite3.c.

#define BTREE_USER_VERSION   6

Definition at line 9463 of file sqlite3.c.

#define btreeIntegrity (   p)
Value:
assert( p->pBt->inTransaction!=TRANS_NONE || p->pBt->nTransaction==0 ); \
assert( p->pBt->inTransaction>=p->inTrans );
#define TRANS_NONE
Definition: sqlite3.c:52482

Definition at line 52745 of file sqlite3.c.

#define BTS_EXCLUSIVE   0x0020 /* pWriter has an exclusive lock */

Definition at line 52567 of file sqlite3.c.

#define BTS_INITIALLY_EMPTY   0x0008 /* Database was empty at trans start */

Definition at line 52565 of file sqlite3.c.

#define BTS_NO_WAL   0x0010 /* Do not open write-ahead-log files */

Definition at line 52566 of file sqlite3.c.

#define BTS_PAGESIZE_FIXED   0x0002 /* Page size can no longer be changed */

Definition at line 52563 of file sqlite3.c.

#define BTS_PENDING   0x0040 /* Waiting for read-locks to clear */

Definition at line 52568 of file sqlite3.c.

#define BTS_READ_ONLY   0x0001 /* Underlying file is readonly */

Definition at line 52562 of file sqlite3.c.

#define BTS_SECURE_DELETE   0x0004 /* PRAGMA secure_delete is enabled */

Definition at line 52564 of file sqlite3.c.

#define BYTESWAP32 (   x)
Value:
( \
(((x)&0x000000FF)<<24) + (((x)&0x0000FF00)<<8) \
+ (((x)&0x00FF0000)>>8) + (((x)&0xFF000000)>>24) \
)

Definition at line 49513 of file sqlite3.c.

#define CACHE_STALE   0

Definition at line 14656 of file sqlite3.c.

#define charMap (   X)    sqlite3UpperToLower[(unsigned char)X]

Definition at line 126842 of file sqlite3.c.

#define CHECK_PAGE (   x)

Definition at line 42874 of file sqlite3.c.

#define checkActiveVdbeCnt (   x)

Definition at line 67027 of file sqlite3.c.

#define CLEARBIT (   V,
 
)    V[I>>3] &= ~(1<<(I&7))

Definition at line 39177 of file sqlite3.c.

#define CODEC1 (   P,
  D,
  N,
  X,
 
)    /* NO-OP */

Definition at line 42082 of file sqlite3.c.

#define CODEC2 (   P,
  D,
  N,
  X,
  E,
 
)    O=(char*)D

Definition at line 42083 of file sqlite3.c.

#define COLFLAG_HIDDEN   0x0002 /* A hidden column in a virtual table */

Definition at line 11356 of file sqlite3.c.

#define COLFLAG_PRIMKEY   0x0001 /* Column is part of the primary key */

Definition at line 11355 of file sqlite3.c.

#define COLNAME_COLUMN   4

Definition at line 9732 of file sqlite3.c.

#define COLNAME_DATABASE   2

Definition at line 9730 of file sqlite3.c.

#define COLNAME_DECLTYPE   1

Definition at line 9729 of file sqlite3.c.

#define COLNAME_N   2 /* Store the name and decltype */

Definition at line 9739 of file sqlite3.c.

#define COLNAME_NAME   0

Definition at line 9728 of file sqlite3.c.

#define COLNAME_TABLE   3

Definition at line 9731 of file sqlite3.c.

#define COLUMN_MASK (   x)    (((x)>31) ? 0xffffffff : ((u32)1<<(x)))

Definition at line 99280 of file sqlite3.c.

#define columnType (   A,
  B,
  C,
  D,
  E,
 
)    columnTypeImpl(A,B,F)

Definition at line 107797 of file sqlite3.c.

#define ConstFactorOk (   P)    ((P)->okConstFactor)

Definition at line 11182 of file sqlite3.c.

#define CORRUPT_DB   (sqlite3Config.neverCorrupt==0)

Definition at line 12848 of file sqlite3.c.

#define CTIMEOPT_VAL (   opt)    CTIMEOPT_VAL_(opt)
#define CTIMEOPT_VAL_ (   opt)    #opt
#define CURSOR_FAULT   4

Definition at line 52679 of file sqlite3.c.

#define CURSOR_INVALID   0

Definition at line 52675 of file sqlite3.c.

#define CURSOR_REQUIRESEEK   3

Definition at line 52678 of file sqlite3.c.

#define CURSOR_SKIPNEXT   2

Definition at line 52677 of file sqlite3.c.

#define CURSOR_VALID   1

Definition at line 52676 of file sqlite3.c.

#define DB_Empty   0x0004 /* The file is empty (length 0 bytes) */

Definition at line 10896 of file sqlite3.c.

#define DB_SchemaLoaded   0x0001 /* The schema has been loaded */

Definition at line 10894 of file sqlite3.c.

#define DB_UnresetViews   0x0002 /* Some views have defined column names */

Definition at line 10895 of file sqlite3.c.

#define DbClearProperty (   D,
  I,
 
)    (D)->aDb[I].pSchema->schemaFlags&=~(P)

Definition at line 10882 of file sqlite3.c.

#define DbHasAnyProperty (   D,
  I,
 
)    (((D)->aDb[I].pSchema->schemaFlags&(P))!=0)

Definition at line 10880 of file sqlite3.c.

#define DbHasProperty (   D,
  I,
 
)    (((D)->aDb[I].pSchema->schemaFlags&(P))==(P))

Definition at line 10879 of file sqlite3.c.

#define DbMaskAllZero (   M)    (M)==0

Definition at line 12479 of file sqlite3.c.

#define DbMaskNonZero (   M)    (M)!=0

Definition at line 12480 of file sqlite3.c.

#define DbMaskSet (   M,
 
)    (M)|=(((yDbMask)1)<<(I))

Definition at line 12478 of file sqlite3.c.

#define DbMaskTest (   M,
 
)    (((M)&(((yDbMask)1)<<(I)))!=0)

Definition at line 12476 of file sqlite3.c.

#define DbMaskZero (   M)    (M)=0

Definition at line 12477 of file sqlite3.c.

#define DbSetProperty (   D,
  I,
 
)    (D)->aDb[I].pSchema->schemaFlags|=(P)

Definition at line 10881 of file sqlite3.c.

#define Deephemeralize (   P)
Value:
if( ((P)->flags&MEM_Ephem)!=0 \
&& sqlite3VdbeMemMakeWriteable(P) ){ goto no_mem;}
#define MEM_Ephem
Definition: sqlite3.c:14721
SQLITE_PRIVATE int sqlite3VdbeMemMakeWriteable(Mem *)
Definition: sqlite3.c:63308

Definition at line 70938 of file sqlite3.c.

#define DIRECT_MODE   0
#define disable_simulated_io_errors ( )

Definition at line 45370 of file sqlite3.c.

#define disable_simulated_io_errors ( )

Definition at line 45370 of file sqlite3.c.

#define DO_OS_MALLOC_TEST (   x)

Definition at line 16516 of file sqlite3.c.

#define DOTLOCK_SUFFIX   ".lock"

Definition at line 27532 of file sqlite3.c.

#define EIGHT_BYTE_ALIGNMENT (   X)    ((((char*)(X) - (char*)0)&7)==0)

Definition at line 9089 of file sqlite3.c.

#define enable_simulated_io_errors ( )

Definition at line 45371 of file sqlite3.c.

#define enable_simulated_io_errors ( )

Definition at line 45371 of file sqlite3.c.

#define ENC (   db)    ((db)->enc)

Definition at line 11110 of file sqlite3.c.

#define EP_Agg   0x000002 /* Contains one or more aggregate functions */

Definition at line 11973 of file sqlite3.c.

#define EP_CanBeNull   0x100000 /* Can be null despite NOT NULL constraint */

Definition at line 11992 of file sqlite3.c.

#define EP_Collate   0x000100 /* Tree contains a TK_COLLATE operator */

Definition at line 11980 of file sqlite3.c.

#define EP_ConstFunc   0x080000 /* Node is a SQLITE_FUNC_CONSTANT function */

Definition at line 11991 of file sqlite3.c.

#define EP_DblQuoted   0x000040 /* token.z was originally in "..." */

Definition at line 11978 of file sqlite3.c.

#define EP_Distinct   0x000010 /* Aggregate function with DISTINCT keyword */

Definition at line 11976 of file sqlite3.c.

#define EP_Error   0x000008 /* Expression contains one or more errors */

Definition at line 11975 of file sqlite3.c.

#define EP_FromJoin   0x000001 /* Originates in ON/USING clause of outer join */

Definition at line 11972 of file sqlite3.c.

#define EP_Generic   0x000200 /* Ignore COLLATE or affinity on this tree */

Definition at line 11981 of file sqlite3.c.

#define EP_InfixFunc   0x000080 /* True for an infix function: LIKE, GLOB, etc */

Definition at line 11979 of file sqlite3.c.

#define EP_IntValue   0x000400 /* Integer value contained in u.iValue */

Definition at line 11982 of file sqlite3.c.

#define EP_MemToken   0x010000 /* Need to sqlite3DbFree() Expr.zToken */

Definition at line 11988 of file sqlite3.c.

#define EP_NoReduce   0x020000 /* Cannot EXPRDUP_REDUCE this Expr */

Definition at line 11989 of file sqlite3.c.

#define EP_Propagate   (EP_Collate|EP_Subquery) /* Propagate these bits up tree */

Definition at line 11998 of file sqlite3.c.

#define EP_Reduced   0x002000 /* Expr struct EXPR_REDUCEDSIZE bytes only */

Definition at line 11985 of file sqlite3.c.

#define EP_Resolved   0x000004 /* IDs have been resolved to COLUMNs */

Definition at line 11974 of file sqlite3.c.

#define EP_Skip   0x001000 /* COLLATE, AS, or UNLIKELY */

Definition at line 11984 of file sqlite3.c.

#define EP_Static   0x008000 /* Held in memory not obtained from malloc() */

Definition at line 11987 of file sqlite3.c.

#define EP_Subquery   0x200000 /* Tree contains a TK_SELECT operator */

Definition at line 11993 of file sqlite3.c.

#define EP_TokenOnly   0x004000 /* Expr struct EXPR_TOKENONLYSIZE bytes only */

Definition at line 11986 of file sqlite3.c.

#define EP_Unlikely   0x040000 /* unlikely() or likelihood() function */

Definition at line 11990 of file sqlite3.c.

#define EP_VarSelect   0x000020 /* pSelect is correlated, not constant */

Definition at line 11977 of file sqlite3.c.

#define EP_xIsSelect   0x000800 /* x.pSelect is valid (otherwise x.pList is) */

Definition at line 11983 of file sqlite3.c.

#define etBUFSIZE   SQLITE_PRINT_BUF_SIZE /* Size of the output buffer */

Definition at line 21519 of file sqlite3.c.

#define etCHARX   9 /* Characters. %c */

Definition at line 21379 of file sqlite3.c.

#define etDYNSTRING   7 /* Dynamically allocated strings. %z */

Definition at line 21377 of file sqlite3.c.

#define etEXP   3 /* Exponentional notation. %e and %E */

Definition at line 21373 of file sqlite3.c.

#define etFLOAT   2 /* Floating point. %f */

Definition at line 21372 of file sqlite3.c.

#define etGENERIC   4 /* Floating or exponential, depending on exponent. %g */

Definition at line 21374 of file sqlite3.c.

#define etINVALID   0 /* Any unrecognized conversion type */

Definition at line 21390 of file sqlite3.c.

#define etORDINAL   16 /* %r -> 1st, 2nd, 3rd, 4th, etc. English only */

Definition at line 21388 of file sqlite3.c.

#define etPERCENT   8 /* Percent symbol. %% */

Definition at line 21378 of file sqlite3.c.

#define etPOINTER   14 /* The %p conversion */

Definition at line 21386 of file sqlite3.c.

#define etRADIX   1 /* Integer types. %d, %x, %o, and so forth */

Definition at line 21371 of file sqlite3.c.

#define etSIZE   5 /* Return number of characters processed so far. %n */

Definition at line 21375 of file sqlite3.c.

#define etSQLESCAPE   10 /* Strings with '\'' doubled. %q */

Definition at line 21381 of file sqlite3.c.

#define etSQLESCAPE2
Value:
11 /* Strings with '\'' doubled and enclosed in '',
NULL pointers replaced by SQL NULL. %Q */

Definition at line 21382 of file sqlite3.c.

#define etSQLESCAPE3   15 /* %w -> Strings with '\"' doubled */

Definition at line 21387 of file sqlite3.c.

#define etSRCLIST   13 /* a pointer to a SrcList */

Definition at line 21385 of file sqlite3.c.

#define etSTRING   6 /* Strings. %s */

Definition at line 21376 of file sqlite3.c.

#define etTOKEN   12 /* a pointer to a Token structure */

Definition at line 21384 of file sqlite3.c.

#define EXCLUSIVE_LOCK   4

Definition at line 10629 of file sqlite3.c.

#define ExpandBlob (   P)    (((P)->flags&MEM_Zero)?sqlite3VdbeMemExpandBlob(P):0)

Definition at line 14988 of file sqlite3.c.

#define explainSetInteger (   a,
 
)    a = b

Definition at line 107587 of file sqlite3.c.

#define EXPR_FULLSIZE   sizeof(Expr) /* Full size */

Definition at line 12024 of file sqlite3.c.

#define EXPR_REDUCEDSIZE   offsetof(Expr,iTable) /* Common features */

Definition at line 12025 of file sqlite3.c.

#define EXPR_TOKENONLYSIZE   offsetof(Expr,pLeft) /* Fewer features */

Definition at line 12026 of file sqlite3.c.

#define ExprClearProperty (   E,
 
)    (E)->flags&=~(P)

Definition at line 12007 of file sqlite3.c.

#define EXPRDUP_REDUCE   0x0001 /* Used reduced-size Expr nodes */

Definition at line 12032 of file sqlite3.c.

#define ExprHasAllProperty (   E,
 
)    (((E)->flags&(P))==(P))

Definition at line 12005 of file sqlite3.c.

#define ExprHasProperty (   E,
 
)    (((E)->flags&(P))!=0)

Definition at line 12004 of file sqlite3.c.

#define ExprSetProperty (   E,
 
)    (E)->flags|=(P)

Definition at line 12006 of file sqlite3.c.

#define ExprSetVVAProperty (   E,
 
)

Definition at line 12016 of file sqlite3.c.

#define EXTRA_SIZE   sizeof(MemPage)

Definition at line 52418 of file sqlite3.c.

#define fdatasync   fsync

Definition at line 28871 of file sqlite3.c.

#define FILEHANDLEID (   fd)    ((int)fd)

Definition at line 41795 of file sqlite3.c.

#define findCell (   P,
 
)    ((P)->aData + ((P)->maskPage & get2byte(&(P)->aCellIdx[2*(I)])))

Definition at line 54039 of file sqlite3.c.

#define findCellv2 (   D,
  M,
  O,
 
)    (D+(M&get2byte(D+(O+2*(I)))))

Definition at line 54041 of file sqlite3.c.

#define FLAG_INTERN   2 /* True if for internal use only */

Definition at line 21415 of file sqlite3.c.

#define FLAG_SIGNED   1 /* True if the value to convert is signed */

Definition at line 21414 of file sqlite3.c.

#define FLAG_STRING   4 /* Allow infinity precision */

Definition at line 21416 of file sqlite3.c.

#define FOUR_BYTE_INT (   x)    (16777216*(i8)((x)[0])|((x)[1]<<16)|((x)[2]<<8)|(x)[3])

Definition at line 67855 of file sqlite3.c.

#define FOUR_BYTE_UINT (   x)    (((u32)(x)[0]<<24)|((x)[1]<<16)|((x)[2]<<8)|(x)[3])

Definition at line 67854 of file sqlite3.c.

#define FULLY_WITHIN   2 /* Object fully contained within query region */

Definition at line 8030 of file sqlite3.c.

#define FUNC_PERFECT_MATCH   6 /* The score for a perfect match */

Definition at line 95363 of file sqlite3.c.

#define FUNCTION (   zName,
  nArg,
  iArg,
  bNC,
  xFunc 
)
Value:
SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, #zName, 0, 0}
#define SQLITE_UTF8
Definition: sqlite3.c:4463
#define SQLITE_FUNC_CONSTANT
Definition: sqlite3.c:11250
#define SQLITE_INT_TO_PTR(X)
Definition: sqlite3.c:8306
#define SQLITE_FUNC_NEEDCOLL
Definition: sqlite3.c:11244

Definition at line 11281 of file sqlite3.c.

#define FUNCTION2 (   zName,
  nArg,
  iArg,
  bNC,
  xFunc,
  extraFlags 
)
Value:
SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, #zName, 0, 0}
#define SQLITE_UTF8
Definition: sqlite3.c:4463
#define SQLITE_FUNC_CONSTANT
Definition: sqlite3.c:11250
#define SQLITE_INT_TO_PTR(X)
Definition: sqlite3.c:8306
#define SQLITE_FUNC_NEEDCOLL
Definition: sqlite3.c:11244

Definition at line 11287 of file sqlite3.c.

#define get2byte (   x)    ((x)[0]<<8 | (x)[1])

Definition at line 52791 of file sqlite3.c.

#define get2byteNotZero (   X)    (((((int)get2byte(X))-1)&0xffff)+1)

Definition at line 53126 of file sqlite3.c.

#define get4byte   sqlite3Get4byte

Definition at line 52793 of file sqlite3.c.

#define getCellInfo (   pCur)
Value:
if( pCur->info.nSize==0 ){ \
int iPage = pCur->iPage; \
btreeParseCell(pCur->apPage[iPage],pCur->aiIdx[iPage],&pCur->info); \
pCur->curFlags |= BTCF_ValidNKey; \
}else{ \
}
#define BTCF_ValidNKey
Definition: sqlite3.c:52640
#define assertCellInfo(x)
Definition: sqlite3.c:57055

Definition at line 57070 of file sqlite3.c.

#define getVarint   sqlite3GetVarint

Definition at line 13402 of file sqlite3.c.

#define getVarint32 (   A,
 
)    (u8)((*(A)<(u8)0x80)?((B)=(u32)*(A)),1:sqlite3GetVarint32((A),(u32 *)&(B)))

Definition at line 13397 of file sqlite3.c.

#define GLOBAL (   t,
 
)    v

Definition at line 9237 of file sqlite3.c.

#define GlobUpperToLower (   A)    if( A<=0x7f ){ A = sqlite3UpperToLower[A]; }

Definition at line 97019 of file sqlite3.c.

#define GlobUpperToLowerAscii (   A)    A = sqlite3UpperToLower[A]

Definition at line 97020 of file sqlite3.c.

#define HASHTABLE_HASH_1   383 /* Should be prime */

Definition at line 49427 of file sqlite3.c.

#define HASHTABLE_NPAGE   4096 /* Must be power of 2 */

Definition at line 49426 of file sqlite3.c.

#define HASHTABLE_NPAGE_ONE   (HASHTABLE_NPAGE - (WALINDEX_HDR_SIZE/sizeof(u32)))

Definition at line 49435 of file sqlite3.c.

#define HASHTABLE_NSLOT   (HASHTABLE_NPAGE*2) /* Must be a power of 2 */

Definition at line 49428 of file sqlite3.c.

#define HasRowid (   X)    (((X)->tabFlags & TF_WithoutRowid)==0)

Definition at line 11571 of file sqlite3.c.

#define HAVE_FULLFSYNC   0

Definition at line 28882 of file sqlite3.c.

#define HAVE_MREMAP   0

Definition at line 25770 of file sqlite3.c.

#define IdChar (   C)    ((sqlite3CtypeMap[(unsigned char)C]&0x46)!=0)

Definition at line 127176 of file sqlite3.c.

#define IfNotOmitAV (   expr)    (expr)

Definition at line 53142 of file sqlite3.c.

#define IgnorableOrderby (   X)    ((X->eDest)<=SRT_DistQueue)

Definition at line 12393 of file sqlite3.c.

#define IN_DECLARE_VTAB   (pParse->declareVtab)

Definition at line 12611 of file sqlite3.c.

#define IN_INDEX_EPH   2 /* Search an ephemeral b-tree */

Definition at line 13671 of file sqlite3.c.

#define IN_INDEX_INDEX_ASC   3 /* Existing index ASCENDING */

Definition at line 13672 of file sqlite3.c.

#define IN_INDEX_INDEX_DESC   4 /* Existing index DESCENDING */

Definition at line 13673 of file sqlite3.c.

#define IN_INDEX_LOOP   0x0004 /* IN operator used as a loop */

Definition at line 13680 of file sqlite3.c.

#define IN_INDEX_MEMBERSHIP   0x0002 /* IN operator used for membership test */

Definition at line 13679 of file sqlite3.c.

#define IN_INDEX_NOOP   5 /* No table available. Use comparisons */

Definition at line 13674 of file sqlite3.c.

#define IN_INDEX_NOOP_OK   0x0001 /* OK to return IN_INDEX_NOOP */

Definition at line 13678 of file sqlite3.c.

#define IN_INDEX_ROWID   1 /* Search the rowid of the table */

Definition at line 13670 of file sqlite3.c.

#define INCRINIT_NORMAL   0

Definition at line 79991 of file sqlite3.c.

#define INCRINIT_ROOT   2

Definition at line 79993 of file sqlite3.c.

#define INCRINIT_TASK   1

Definition at line 79992 of file sqlite3.c.

#define initMaskSet (   P)    (P)->n=0

Definition at line 116456 of file sqlite3.c.

#define INT16_TYPE   short int

Definition at line 8934 of file sqlite3.c.

#define INT8_TYPE   signed char

Definition at line 8948 of file sqlite3.c.

#define INTERFACE   1

Definition at line 123405 of file sqlite3.c.

#define invalidateOverflowCache (   pCur)    (pCur->curFlags &= ~BTCF_ValidOvfl)

Definition at line 53541 of file sqlite3.c.

#define IOMETHODS (   FINDER,
  METHOD,
  VERSION,
  CLOSE,
  LOCK,
  UNLOCK,
  CKLOCK,
  SHMMAP 
)
Value:
static const sqlite3_io_methods METHOD = { \
VERSION, /* iVersion */ \
CLOSE, /* xClose */ \
unixRead, /* xRead */ \
unixWrite, /* xWrite */ \
unixTruncate, /* xTruncate */ \
unixSync, /* xSync */ \
unixFileSize, /* xFileSize */ \
LOCK, /* xLock */ \
UNLOCK, /* xUnlock */ \
CKLOCK, /* xCheckReservedLock */ \
unixFileControl, /* xFileControl */ \
unixSectorSize, /* xSectorSize */ \
unixDeviceCharacteristics, /* xDeviceCapabilities */ \
SHMMAP, /* xShmMap */ \
unixShmLock, /* xShmLock */ \
unixShmBarrier, /* xShmBarrier */ \
unixShmUnmap, /* xShmUnmap */ \
unixFetch, /* xFetch */ \
unixUnfetch, /* xUnfetch */ \
}; \
static const sqlite3_io_methods *FINDER##Impl(const char *z, unixFile *p){ \
return &METHOD; \
} \
static const sqlite3_io_methods *(*const FINDER)(const char*,unixFile *p) \
= FINDER##Impl;
#define UNUSED_PARAMETER(x)
Definition: sqlite3.c:9257

Definition at line 30455 of file sqlite3.c.

#define IOTRACE (   A)

Definition at line 13733 of file sqlite3.c.

#define IS_BIG_INT (   X)    (((X)&~(i64)0xffffffff)!=0)

Definition at line 8517 of file sqlite3.c.

#define IS_LOCK_ERROR (   x)    ((x != SQLITE_OK) && (x != SQLITE_BUSY))

Definition at line 25419 of file sqlite3.c.

#define ISAUTOVACUUM   (pBt->autoVacuum)

Definition at line 52758 of file sqlite3.c.

#define IsHiddenColumn (   X)    (((X)->colFlags & COLFLAG_HIDDEN)!=0)

Definition at line 11564 of file sqlite3.c.

#define isOpen (   pFd)    ((pFd)->pMethods)

Definition at line 42474 of file sqlite3.c.

#define IsPowerOfTwo (   X)    (((X)&((X)-1))==0)

Definition at line 9203 of file sqlite3.c.

#define IsPrimaryKeyIndex (   X)    ((X)->idxType==SQLITE_IDXTYPE_PRIMARYKEY)

Definition at line 11771 of file sqlite3.c.

#define isSorter (   x)    ((x)->pSorter!=0)

Definition at line 70943 of file sqlite3.c.

#define IsStat3   0

Definition at line 88221 of file sqlite3.c.

#define IsStat34   (IsStat3+IsStat4) /* 1 for STAT3 or STAT4. 0 otherwise */

Definition at line 88225 of file sqlite3.c.

#define IsStat4   0

Definition at line 88220 of file sqlite3.c.

#define IsUniqueIndex (   X)    ((X)->onError!=OE_None)

Definition at line 11774 of file sqlite3.c.

#define IsVirtual (   X)    (((X)->tabFlags & TF_Virtual)!=0)

Definition at line 11563 of file sqlite3.c.

#define JOURNAL_CHUNKSIZE   ((int)(1024-sizeof(FileChunk*)))

Definition at line 80922 of file sqlite3.c.

#define JOURNAL_HDR_SZ (   pPager)    (pPager->sectorSize)

Definition at line 42433 of file sqlite3.c.

#define JOURNAL_PG_SZ (   pPager)    ((pPager->pageSize) + 8)

Definition at line 42427 of file sqlite3.c.

#define JT_CROSS   0x0002 /* Explicit use of the CROSS keyword */

Definition at line 12177 of file sqlite3.c.

#define JT_ERROR   0x0040 /* unknown or unsupported join type */

Definition at line 12182 of file sqlite3.c.

#define JT_INNER   0x0001 /* Any kind of inner or cross join */

Definition at line 12176 of file sqlite3.c.

#define JT_LEFT   0x0008 /* Left outer join */

Definition at line 12179 of file sqlite3.c.

#define JT_NATURAL   0x0004 /* True for a "natural" join */

Definition at line 12178 of file sqlite3.c.

#define JT_OUTER   0x0020 /* The "OUTER" keyword is present */

Definition at line 12181 of file sqlite3.c.

#define JT_RIGHT   0x0010 /* Right outer join */

Definition at line 12180 of file sqlite3.c.

#define LARGEST_INT64   (0xffffffff|(((i64)0x7fffffff)<<32))

Definition at line 9063 of file sqlite3.c.

#define LIKEFUNC (   zName,
  nArg,
  arg,
  flags 
)
Value:
(void *)arg, 0, likeFunc, 0, 0, #zName, 0, 0}
#define SQLITE_UTF8
Definition: sqlite3.c:4463
#define SQLITE_FUNC_CONSTANT
Definition: sqlite3.c:11250

Definition at line 11293 of file sqlite3.c.

#define likely (   X)    (X)

Definition at line 8526 of file sqlite3.c.

#define LONGDOUBLE_TYPE   long double

Definition at line 8952 of file sqlite3.c.

#define MASKBIT (   n)    (((Bitmask)1)<<(n))

Definition at line 12121 of file sqlite3.c.

#define MASKBIT32 (   n)    (((unsigned int)1)<<(n))

Definition at line 12122 of file sqlite3.c.

#define MASTER_NAME   "sqlite_master"

Definition at line 9181 of file sqlite3.c.

#define MASTER_ROOT   1

Definition at line 9187 of file sqlite3.c.

#define MAX (   A,
 
)    ((A)>(B)?(A):(B))

Definition at line 8892 of file sqlite3.c.

#define MAX_6BYTE   ((((i64)0x00008000)<<32)-1)
#define MAX_PATHNAME   512

Definition at line 25409 of file sqlite3.c.

#define MAX_ROWID   (i64)( (((u64)0x7fffffff)<<32) | (u64)0xffffffff )
#define MAX_SECTOR_SIZE   0x10000

Definition at line 42092 of file sqlite3.c.

#define mem0   GLOBAL(struct Mem0Global, mem0)

Definition at line 20598 of file sqlite3.c.

#define MEM_AffMask   0x001f /* Mask of affinity bits */

Definition at line 14705 of file sqlite3.c.

#define MEM_Agg   0x2000 /* Mem.z points to an agg function context */

Definition at line 14722 of file sqlite3.c.

#define MEM_Blob   0x0010 /* Value is a BLOB */

Definition at line 14704 of file sqlite3.c.

#define MEM_Cleared   0x0100 /* NULL set by OP_Null, not from data */

Definition at line 14709 of file sqlite3.c.

#define MEM_Dyn   0x0400 /* Need to call Mem.xDel() on Mem.z */

Definition at line 14719 of file sqlite3.c.

#define MEM_Ephem   0x1000 /* Mem.z points to an ephemeral string */

Definition at line 14721 of file sqlite3.c.

#define MEM_Frame   0x0040 /* Value is a VdbeFrame object */

Definition at line 14707 of file sqlite3.c.

#define MEM_Int   0x0004 /* Value is an integer */

Definition at line 14702 of file sqlite3.c.

#define MEM_Null   0x0001 /* Value is NULL */

Definition at line 14700 of file sqlite3.c.

#define MEM_Real   0x0008 /* Value is a real number */

Definition at line 14703 of file sqlite3.c.

#define MEM_RowSet   0x0020 /* Value is a RowSet object */

Definition at line 14706 of file sqlite3.c.

#define MEM_Static   0x0800 /* Mem.z points to a static string */

Definition at line 14720 of file sqlite3.c.

#define MEM_Str   0x0002 /* Value is a string */

Definition at line 14701 of file sqlite3.c.

#define MEM_Term   0x0200 /* String rep is nul terminated */

Definition at line 14718 of file sqlite3.c.

#define MEM_TypeMask   0x01ff /* Mask of type bits */

Definition at line 14710 of file sqlite3.c.

#define MEM_Undefined   0x0080 /* Value is undefined */

Definition at line 14708 of file sqlite3.c.

#define MEM_Zero   0x4000 /* Mem.i contains count of 0s appended to blob */

Definition at line 14723 of file sqlite3.c.

#define memAboutToChange (   P,
 
)

Definition at line 70811 of file sqlite3.c.

#define MEMCELLSIZE   offsetof(Mem,zMalloc)

Definition at line 63893 of file sqlite3.c.

#define MEMDB   pPager->memDb

Definition at line 42444 of file sqlite3.c.

#define MemSetTypeFlag (   p,
 
)    ((p)->flags = ((p)->flags&~(MEM_TypeMask|MEM_Zero))|f)

Definition at line 14732 of file sqlite3.c.

#define MEMTYPE_HEAP   0x01 /* General heap allocations */

Definition at line 13774 of file sqlite3.c.

#define MEMTYPE_LOOKASIDE   0x02 /* Heap that might have been lookaside */

Definition at line 13775 of file sqlite3.c.

#define MEMTYPE_PCACHE   0x08 /* Page cache allocations */

Definition at line 13777 of file sqlite3.c.

#define MEMTYPE_SCRATCH   0x04 /* Scratch allocations */

Definition at line 13776 of file sqlite3.c.

#define MIN (   A,
 
)    ((A)<(B)?(A):(B))

Definition at line 8891 of file sqlite3.c.

#define MUTEX_LOGIC (   X)    X

Definition at line 10823 of file sqlite3.c.

#define MX_CELL (   pBt)    ((pBt->pageSize-8)/6)

Definition at line 52341 of file sqlite3.c.

#define MX_CELL_SIZE (   pBt)    ((int)(pBt->pageSize-8))

Definition at line 52334 of file sqlite3.c.

#define N_OR_COST   3

Definition at line 115889 of file sqlite3.c.

#define N_SORT_BUCKET   32

Definition at line 39845 of file sqlite3.c.

#define NB   (NN*2+1) /* Total pages involved in the balance */

Definition at line 59492 of file sqlite3.c.

#define NC_AllowAgg   0x0001 /* Aggregate functions are allowed here */

Definition at line 12250 of file sqlite3.c.

#define NC_HasAgg   0x0002 /* One or more aggregate functions seen */

Definition at line 12251 of file sqlite3.c.

#define NC_InAggFunc   0x0008 /* True if analyzing arguments to an agg func */

Definition at line 12253 of file sqlite3.c.

#define NC_IsCheck   0x0004 /* True if resolving names in a CHECK constraint */

Definition at line 12252 of file sqlite3.c.

#define NC_MinMaxAgg   0x1000 /* min/max aggregates seen. See note above */

Definition at line 12255 of file sqlite3.c.

#define NC_PartIdx   0x0010 /* True if resolving a partial index WHERE */

Definition at line 12254 of file sqlite3.c.

#define NDEBUG   1

Definition at line 8427 of file sqlite3.c.

#define NEVER (   X)    (X)

Definition at line 8509 of file sqlite3.c.

#define NN   1 /* Number of neighbors on either side of pPage */

Definition at line 59491 of file sqlite3.c.

#define NO_LOCK   0

Definition at line 10625 of file sqlite3.c.

#define noopFunc   versionFunc /* Substitute function - never called */

Definition at line 96897 of file sqlite3.c.

#define NOT_WITHIN   0 /* Object completely outside of query region */

Definition at line 8028 of file sqlite3.c.

#define O_BINARY   0

Definition at line 25750 of file sqlite3.c.

#define O_LARGEFILE   0

Definition at line 25740 of file sqlite3.c.

#define O_NOFOLLOW   0

Definition at line 25747 of file sqlite3.c.

#define OE_Abort   2 /* Back out changes but do no rollback transaction */

Definition at line 11645 of file sqlite3.c.

#define OE_Cascade   9 /* Cascade the changes */

Definition at line 11653 of file sqlite3.c.

#define OE_Default   10 /* Do whatever the default action is */

Definition at line 11655 of file sqlite3.c.

#define OE_Fail   3 /* Stop the operation but leave all prior changes */

Definition at line 11646 of file sqlite3.c.

#define OE_Ignore   4 /* Ignore the error. Do not do the INSERT or UPDATE */

Definition at line 11647 of file sqlite3.c.

#define OE_None   0 /* There is no constraint to check */

Definition at line 11643 of file sqlite3.c.

#define OE_Replace   5 /* Delete existing record, then do INSERT or UPDATE */

Definition at line 11648 of file sqlite3.c.

#define OE_Restrict   6 /* OE_Abort for IMMEDIATE, OE_Rollback for DEFERRED */

Definition at line 11650 of file sqlite3.c.

#define OE_Rollback   1 /* Fail the operation and rollback the transaction */

Definition at line 11644 of file sqlite3.c.

#define OE_SetDflt   8 /* Set the foreign key value to its default */

Definition at line 11652 of file sqlite3.c.

#define OE_SetNull   7 /* Set the foreign key value to NULL */

Definition at line 11651 of file sqlite3.c.

#define offsetof (   STRUCTURE,
  FIELD 
)    ((int)((char*)&((STRUCTURE*)0)->FIELD))

Definition at line 8885 of file sqlite3.c.

#define OMIT_TEMPDB   0

Definition at line 8828 of file sqlite3.c.

#define ONE_BYTE_INT (   x)    ((i8)(x)[0])

Definition at line 67851 of file sqlite3.c.

#define OP_Add   89 /* same as TK_PLUS, synopsis: r[P3]=r[P1]+r[P2] */

Definition at line 9847 of file sqlite3.c.

#define OP_AddImm   37 /* synopsis: r[P1]=r[P1]+P2 */

Definition at line 9795 of file sqlite3.c.

#define OP_Affinity   48 /* synopsis: affinity(r[P1@P2]) */

Definition at line 9806 of file sqlite3.c.

#define OP_AggFinal   142 /* synopsis: accum=r[P1] N=P2 */

Definition at line 9900 of file sqlite3.c.

#define OP_AggStep   10 /* synopsis: accum=r[P3] step(r[P2@P5]) */

Definition at line 9768 of file sqlite3.c.

#define OP_And   72 /* same as TK_AND, synopsis: r[P3]=(r[P1] && r[P2]) */

Definition at line 9830 of file sqlite3.c.

#define OP_AutoCommit   3

Definition at line 9761 of file sqlite3.c.

#define OP_BitAnd   85 /* same as TK_BITAND, synopsis: r[P3]=r[P1]&r[P2] */

Definition at line 9843 of file sqlite3.c.

#define OP_BitNot   96 /* same as TK_BITNOT, synopsis: r[P1]= ~r[P1] */

Definition at line 9854 of file sqlite3.c.

#define OP_BitOr   86 /* same as TK_BITOR, synopsis: r[P3]=r[P1]|r[P2] */

Definition at line 9844 of file sqlite3.c.

#define OP_Blob   30 /* synopsis: r[P2]=P4 (len=P1) */

Definition at line 9788 of file sqlite3.c.

#define OP_Cast   40 /* synopsis: affinity(r[P1]) */

Definition at line 9798 of file sqlite3.c.

#define OP_Checkpoint   11

Definition at line 9769 of file sqlite3.c.

#define OP_Clear   118

Definition at line 9876 of file sqlite3.c.

#define OP_Close   61

Definition at line 9819 of file sqlite3.c.

#define OP_CollSeq   36

Definition at line 9794 of file sqlite3.c.

#define OP_Column   47 /* synopsis: r[P3]=PX */

Definition at line 9805 of file sqlite3.c.

#define OP_Compare   42 /* synopsis: r[P1@P3] <-> r[P2@P3] */

Definition at line 9800 of file sqlite3.c.

#define OP_Concat   94 /* same as TK_CONCAT, synopsis: r[P3]=r[P2]+r[P1] */

Definition at line 9852 of file sqlite3.c.

#define OP_Copy   33 /* synopsis: r[P2@P3+1]=r[P1@P3+1] */

Definition at line 9791 of file sqlite3.c.

#define OP_Count   50 /* synopsis: r[P2]=count() */

Definition at line 9808 of file sqlite3.c.

#define OP_CreateIndex   120 /* synopsis: r[P2]=root iDb=P1 */

Definition at line 9878 of file sqlite3.c.

#define OP_CreateTable   121 /* synopsis: r[P2]=root iDb=P1 */

Definition at line 9879 of file sqlite3.c.

#define OP_DecrJumpZero   140 /* synopsis: if (--r[P1])==0 goto P2 */

Definition at line 9898 of file sqlite3.c.

#define OP_Delete   95

Definition at line 9853 of file sqlite3.c.

#define OP_Destroy   117

Definition at line 9875 of file sqlite3.c.

#define OP_Divide   92 /* same as TK_SLASH, synopsis: r[P3]=r[P2]/r[P1] */

Definition at line 9850 of file sqlite3.c.

#define OP_DropIndex   125

Definition at line 9883 of file sqlite3.c.

#define OP_DropTable   124

Definition at line 9882 of file sqlite3.c.

#define OP_DropTrigger   126

Definition at line 9884 of file sqlite3.c.

#define OP_EndCoroutine   21

Definition at line 9779 of file sqlite3.c.

#define OP_Eq   79 /* same as TK_EQ, synopsis: if r[P1]==r[P3] goto P2 */

Definition at line 9837 of file sqlite3.c.

#define OP_Expire   144

Definition at line 9902 of file sqlite3.c.

#define OP_Explain   157

Definition at line 9915 of file sqlite3.c.

#define OP_FkCounter   134 /* synopsis: fkctr[P1]+=P2 */

Definition at line 9892 of file sqlite3.c.

#define OP_FkIfZero   135 /* synopsis: if fkctr[P1]==0 goto P2 */

Definition at line 9893 of file sqlite3.c.

#define OP_Found   69 /* synopsis: key=r[P3@P4] */

Definition at line 9827 of file sqlite3.c.

#define OP_Function   1 /* synopsis: r[P3]=func(r[P2@P5]) */

Definition at line 9759 of file sqlite3.c.

#define OP_Ge   83 /* same as TK_GE, synopsis: if r[P1]>=r[P3] goto P2 */

Definition at line 9841 of file sqlite3.c.

#define OP_Gosub   17

Definition at line 9775 of file sqlite3.c.

#define OP_Goto   16

Definition at line 9774 of file sqlite3.c.

#define OP_Gt   80 /* same as TK_GT, synopsis: if r[P1]>r[P3] goto P2 */

Definition at line 9838 of file sqlite3.c.

#define OP_Halt   24

Definition at line 9782 of file sqlite3.c.

#define OP_HaltIfNull   23 /* synopsis: if r[P3]=null halt */

Definition at line 9781 of file sqlite3.c.

#define OP_IdxDelete   111 /* synopsis: key=r[P2@P3] */

Definition at line 9869 of file sqlite3.c.

#define OP_IdxGE   116 /* synopsis: key=r[P3@P4] */

Definition at line 9874 of file sqlite3.c.

#define OP_IdxGT   114 /* synopsis: key=r[P3@P4] */

Definition at line 9872 of file sqlite3.c.

#define OP_IdxInsert   110 /* synopsis: key=r[P2] */

Definition at line 9868 of file sqlite3.c.

#define OP_IdxLE   113 /* synopsis: key=r[P3@P4] */

Definition at line 9871 of file sqlite3.c.

#define OP_IdxLT   115 /* synopsis: key=r[P3@P4] */

Definition at line 9873 of file sqlite3.c.

#define OP_IdxRowid   112 /* synopsis: r[P2]=rowid */

Definition at line 9870 of file sqlite3.c.

#define OP_If   45

Definition at line 9803 of file sqlite3.c.

#define OP_IfNeg   138 /* synopsis: r[P1]+=P3, if r[P1]<0 goto P2 */

Definition at line 9896 of file sqlite3.c.

#define OP_IfNot   46

Definition at line 9804 of file sqlite3.c.

#define OP_IfNotZero   139 /* synopsis: if r[P1]!=0 then r[P1]+=P3, goto P2 */

Definition at line 9897 of file sqlite3.c.

#define OP_IfPos   137 /* synopsis: if r[P1]>0 goto P2 */

Definition at line 9895 of file sqlite3.c.

#define OP_IncrVacuum   143

Definition at line 9901 of file sqlite3.c.

#define OP_Init   155 /* synopsis: Start at P2 */

Definition at line 9913 of file sqlite3.c.

#define OP_InitCoroutine   20

Definition at line 9778 of file sqlite3.c.

#define OP_Insert   75 /* synopsis: intkey=r[P3] data=r[P2] */

Definition at line 9833 of file sqlite3.c.

#define OP_InsertInt   84 /* synopsis: intkey=P3 data=r[P2] */

Definition at line 9842 of file sqlite3.c.

#define OP_Int64   26 /* synopsis: r[P2]=P4 */

Definition at line 9784 of file sqlite3.c.

#define OP_Integer   25 /* synopsis: r[P2]=P1 */

Definition at line 9783 of file sqlite3.c.

#define OP_IntegrityCk   127

Definition at line 9885 of file sqlite3.c.

#define OP_IsNull   76 /* same as TK_ISNULL, synopsis: if r[P1]==NULL goto P2 */

Definition at line 9834 of file sqlite3.c.

#define OP_JournalMode   12

Definition at line 9770 of file sqlite3.c.

#define OP_Jump   43

Definition at line 9801 of file sqlite3.c.

#define OP_JumpZeroIncr   141 /* synopsis: if (r[P1]++)==0 ) goto P2 */

Definition at line 9899 of file sqlite3.c.

#define OP_Last   105

Definition at line 9863 of file sqlite3.c.

#define OP_Le   81 /* same as TK_LE, synopsis: if r[P1]<=r[P3] goto P2 */

Definition at line 9839 of file sqlite3.c.

#define OP_LoadAnalysis   123

Definition at line 9881 of file sqlite3.c.

#define OP_Lt   82 /* same as TK_LT, synopsis: if r[P1]<r[P3] goto P2 */

Definition at line 9840 of file sqlite3.c.

#define OP_MakeRecord   49 /* synopsis: r[P3]=mkrec(r[P1@P2]) */

Definition at line 9807 of file sqlite3.c.

#define OP_MaxPgcnt   154

Definition at line 9912 of file sqlite3.c.

#define OP_MemMax   136 /* synopsis: r[P1]=max(r[P1],r[P2]) */

Definition at line 9894 of file sqlite3.c.

#define OP_Move   32 /* synopsis: r[P2@P3]=r[P1@P3] */

Definition at line 9790 of file sqlite3.c.

#define OP_Multiply   91 /* same as TK_STAR, synopsis: r[P3]=r[P1]*r[P2] */

Definition at line 9849 of file sqlite3.c.

#define OP_MustBeInt   38

Definition at line 9796 of file sqlite3.c.

#define OP_Ne   78 /* same as TK_NE, synopsis: if r[P1]!=r[P3] goto P2 */

Definition at line 9836 of file sqlite3.c.

#define OP_NewRowid   74 /* synopsis: r[P2]=rowid */

Definition at line 9832 of file sqlite3.c.

#define OP_Next   9

Definition at line 9767 of file sqlite3.c.

#define OP_NextIfOpen   7

Definition at line 9765 of file sqlite3.c.

#define OP_NoConflict   67 /* synopsis: key=r[P3@P4] */

Definition at line 9825 of file sqlite3.c.

#define OP_Noop   156

Definition at line 9914 of file sqlite3.c.

#define OP_Not   19 /* same as TK_NOT, synopsis: r[P2]= !r[P1] */

Definition at line 9777 of file sqlite3.c.

#define OP_NotExists   70 /* synopsis: intkey=r[P3] */

Definition at line 9828 of file sqlite3.c.

#define OP_NotFound   68 /* synopsis: key=r[P3@P4] */

Definition at line 9826 of file sqlite3.c.

#define OP_NotNull   77 /* same as TK_NOTNULL, synopsis: if r[P1]!=NULL goto P2 */

Definition at line 9835 of file sqlite3.c.

#define OP_Null   28 /* synopsis: r[P2..P3]=NULL */

Definition at line 9786 of file sqlite3.c.

#define OP_NullRow   104

Definition at line 9862 of file sqlite3.c.

#define OP_Once   44

Definition at line 9802 of file sqlite3.c.

#define OP_OpenAutoindex   56 /* synopsis: nColumn=P2 */

Definition at line 9814 of file sqlite3.c.

#define OP_OpenEphemeral   57 /* synopsis: nColumn=P2 */

Definition at line 9815 of file sqlite3.c.

#define OP_OpenPseudo   60 /* synopsis: P3 columns in r[P2] */

Definition at line 9818 of file sqlite3.c.

#define OP_OpenRead   54 /* synopsis: root=P2 iDb=P3 */

Definition at line 9812 of file sqlite3.c.

#define OP_OpenWrite   55 /* synopsis: root=P2 iDb=P3 */

Definition at line 9813 of file sqlite3.c.

#define OP_Or   71 /* same as TK_OR, synopsis: r[P3]=(r[P1] || r[P2]) */

Definition at line 9829 of file sqlite3.c.

#define OP_Pagecount   153

Definition at line 9911 of file sqlite3.c.

#define OP_Param   132

Definition at line 9890 of file sqlite3.c.

#define OP_ParseSchema   122

Definition at line 9880 of file sqlite3.c.

#define OP_Permutation   41

Definition at line 9799 of file sqlite3.c.

#define OP_Prev   8

Definition at line 9766 of file sqlite3.c.

#define OP_PrevIfOpen   6

Definition at line 9764 of file sqlite3.c.

#define OP_Program   131

Definition at line 9889 of file sqlite3.c.

#define OP_ReadCookie   51

Definition at line 9809 of file sqlite3.c.

#define OP_Real   133 /* same as TK_FLOAT, synopsis: r[P2]=P4 */

Definition at line 9891 of file sqlite3.c.

#define OP_RealAffinity   39

Definition at line 9797 of file sqlite3.c.

#define OP_Remainder   93 /* same as TK_REM, synopsis: r[P3]=r[P2]%r[P1] */

Definition at line 9851 of file sqlite3.c.

#define OP_ReopenIdx   53 /* synopsis: root=P2 iDb=P3 */

Definition at line 9811 of file sqlite3.c.

#define OP_ResetCount   98

Definition at line 9856 of file sqlite3.c.

#define OP_ResetSorter   119

Definition at line 9877 of file sqlite3.c.

#define OP_ResultRow   35 /* synopsis: output=r[P1@P2] */

Definition at line 9793 of file sqlite3.c.

#define OP_Return   18

Definition at line 9776 of file sqlite3.c.

#define OP_Rewind   108

Definition at line 9866 of file sqlite3.c.

#define OP_RowData   102 /* synopsis: r[P2]=data */

Definition at line 9860 of file sqlite3.c.

#define OP_Rowid   103 /* synopsis: r[P2]=rowid */

Definition at line 9861 of file sqlite3.c.

#define OP_RowKey   101 /* synopsis: r[P2]=key */

Definition at line 9859 of file sqlite3.c.

#define OP_RowSetAdd   128 /* synopsis: rowset(P1)=r[P2] */

Definition at line 9886 of file sqlite3.c.

#define OP_RowSetRead   129 /* synopsis: r[P3]=rowset(P1) */

Definition at line 9887 of file sqlite3.c.

#define OP_RowSetTest   130 /* synopsis: if r[P3] in rowset(P1) goto P2 */

Definition at line 9888 of file sqlite3.c.

#define OP_Savepoint   2

Definition at line 9760 of file sqlite3.c.

#define OP_SCopy   34 /* synopsis: r[P2]=r[P1] */

Definition at line 9792 of file sqlite3.c.

#define OP_Seek   66 /* synopsis: intkey=r[P2] */

Definition at line 9824 of file sqlite3.c.

#define OP_SeekGE   64 /* synopsis: key=r[P3@P4] */

Definition at line 9822 of file sqlite3.c.

#define OP_SeekGT   65 /* synopsis: key=r[P3@P4] */

Definition at line 9823 of file sqlite3.c.

#define OP_SeekLE   63 /* synopsis: key=r[P3@P4] */

Definition at line 9821 of file sqlite3.c.

#define OP_SeekLT   62 /* synopsis: key=r[P3@P4] */

Definition at line 9820 of file sqlite3.c.

#define OP_Sequence   73 /* synopsis: r[P2]=cursor[P1].ctr++ */

Definition at line 9831 of file sqlite3.c.

#define OP_SequenceTest   59 /* synopsis: if( cursor[P1].ctr++ ) pc = P2 */

Definition at line 9817 of file sqlite3.c.

#define OP_SetCookie   52

Definition at line 9810 of file sqlite3.c.

#define OP_ShiftLeft   87 /* same as TK_LSHIFT, synopsis: r[P3]=r[P2]<<r[P1] */

Definition at line 9845 of file sqlite3.c.

#define OP_ShiftRight   88 /* same as TK_RSHIFT, synopsis: r[P3]=r[P2]>>r[P1] */

Definition at line 9846 of file sqlite3.c.

#define OP_SoftNull   29 /* synopsis: r[P1]=NULL */

Definition at line 9787 of file sqlite3.c.

#define OP_Sort   107

Definition at line 9865 of file sqlite3.c.

#define OP_SorterCompare   99 /* synopsis: if key(P1)!=trim(r[P3],P4) goto P2 */

Definition at line 9857 of file sqlite3.c.

#define OP_SorterData   100 /* synopsis: r[P2]=data */

Definition at line 9858 of file sqlite3.c.

#define OP_SorterInsert   109

Definition at line 9867 of file sqlite3.c.

#define OP_SorterNext   5

Definition at line 9763 of file sqlite3.c.

#define OP_SorterOpen   58

Definition at line 9816 of file sqlite3.c.

#define OP_SorterSort   106

Definition at line 9864 of file sqlite3.c.

#define OP_String   27 /* synopsis: r[P2]='P4' (len=P1) */

Definition at line 9785 of file sqlite3.c.

#define OP_String8   97 /* same as TK_STRING, synopsis: r[P2]='P4' */

Definition at line 9855 of file sqlite3.c.

#define OP_Subtract   90 /* same as TK_MINUS, synopsis: r[P3]=r[P2]-r[P1] */

Definition at line 9848 of file sqlite3.c.

#define OP_TableLock   145 /* synopsis: iDb=P1 root=P2 write=P3 */

Definition at line 9903 of file sqlite3.c.

#define OP_Transaction   4

Definition at line 9762 of file sqlite3.c.

#define OP_Vacuum   13

Definition at line 9771 of file sqlite3.c.

#define OP_Variable   31 /* synopsis: r[P2]=parameter(P1,P4) */

Definition at line 9789 of file sqlite3.c.

#define OP_VBegin   146

Definition at line 9904 of file sqlite3.c.

#define OP_VColumn   150 /* synopsis: r[P3]=vcolumn(P2) */

Definition at line 9908 of file sqlite3.c.

#define OP_VCreate   147

Definition at line 9905 of file sqlite3.c.

#define OP_VDestroy   148

Definition at line 9906 of file sqlite3.c.

#define OP_VFilter   14 /* synopsis: iplan=r[P3] zplan='P4' */

Definition at line 9772 of file sqlite3.c.

#define OP_VNext   151

Definition at line 9909 of file sqlite3.c.

#define OP_VOpen   149

Definition at line 9907 of file sqlite3.c.

#define OP_VRename   152

Definition at line 9910 of file sqlite3.c.

#define OP_VUpdate   15 /* synopsis: data=r[P3@P2] */

Definition at line 9773 of file sqlite3.c.

#define OP_Yield   22

Definition at line 9780 of file sqlite3.c.

#define OpenCounter (   X)

Definition at line 25728 of file sqlite3.c.

#define OPFLAG_APPEND   0x08 /* This is likely to be an append */

Definition at line 12630 of file sqlite3.c.

#define OPFLAG_BULKCSR   0x01 /* OP_Open** used to open bulk cursor */

Definition at line 12634 of file sqlite3.c.

#define OPFLAG_EPHEM   0x01 /* OP_Column: Ephemeral output is ok */

Definition at line 12627 of file sqlite3.c.

#define OPFLAG_ISUPDATE   0x04 /* This OP_Insert is an sql UPDATE */

Definition at line 12629 of file sqlite3.c.

#define OPFLAG_LASTROWID   0x02 /* Set to update db->lastRowid */

Definition at line 12628 of file sqlite3.c.

#define OPFLAG_LENGTHARG   0x40 /* OP_Column only used for length() */

Definition at line 12632 of file sqlite3.c.

#define OPFLAG_NCHANGE   0x01 /* Set to update db->nChange */

Definition at line 12626 of file sqlite3.c.

#define OPFLAG_P2ISREG   0x04 /* P2 to OP_Open** is a register number */

Definition at line 12636 of file sqlite3.c.

#define OPFLAG_PERMUTE   0x01 /* OP_Compare: use the permutation */

Definition at line 12637 of file sqlite3.c.

#define OPFLAG_SEEKEQ   0x02 /* OP_Open** cursor uses EQ seek only */

Definition at line 12635 of file sqlite3.c.

#define OPFLAG_TYPEOFARG   0x80 /* OP_Column only used for typeof() */

Definition at line 12633 of file sqlite3.c.

#define OPFLAG_USESEEKRESULT   0x10 /* Try to avoid a seek in BtreeInsert() */

Definition at line 12631 of file sqlite3.c.

#define OPFLG_IN1   0x0002 /* in1: P1 is an input */

Definition at line 9923 of file sqlite3.c.

#define OPFLG_IN2   0x0004 /* in2: P2 is an input */

Definition at line 9924 of file sqlite3.c.

#define OPFLG_IN3   0x0008 /* in3: P3 is an input */

Definition at line 9925 of file sqlite3.c.

#define OPFLG_INITIALIZER
Value:
{\
/* 0 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,\
/* 8 */ 0x01, 0x01, 0x00, 0x00, 0x10, 0x00, 0x01, 0x00,\
/* 16 */ 0x01, 0x01, 0x02, 0x12, 0x01, 0x02, 0x03, 0x08,\
/* 24 */ 0x00, 0x10, 0x10, 0x10, 0x10, 0x00, 0x10, 0x10,\
/* 32 */ 0x00, 0x00, 0x10, 0x00, 0x00, 0x02, 0x03, 0x02,\
/* 40 */ 0x02, 0x00, 0x00, 0x01, 0x01, 0x03, 0x03, 0x00,\
/* 48 */ 0x00, 0x00, 0x10, 0x10, 0x08, 0x00, 0x00, 0x00,\
/* 56 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x09,\
/* 64 */ 0x09, 0x09, 0x04, 0x09, 0x09, 0x09, 0x09, 0x26,\
/* 72 */ 0x26, 0x10, 0x10, 0x00, 0x03, 0x03, 0x0b, 0x0b,\
/* 80 */ 0x0b, 0x0b, 0x0b, 0x0b, 0x00, 0x26, 0x26, 0x26,\
/* 88 */ 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x26, 0x00,\
/* 96 */ 0x12, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,\
/* 104 */ 0x00, 0x01, 0x01, 0x01, 0x01, 0x04, 0x04, 0x00,\
/* 112 */ 0x10, 0x01, 0x01, 0x01, 0x01, 0x10, 0x00, 0x00,\
/* 120 */ 0x10, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,\
/* 128 */ 0x06, 0x23, 0x0b, 0x01, 0x10, 0x10, 0x00, 0x01,\
/* 136 */ 0x04, 0x03, 0x03, 0x03, 0x03, 0x03, 0x00, 0x01,\
/* 144 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,\
/* 152 */ 0x00, 0x10, 0x10, 0x01, 0x00, 0x00,}

Definition at line 9928 of file sqlite3.c.

#define OPFLG_JUMP   0x0001 /* jump: P2 holds jmp target */

Definition at line 9922 of file sqlite3.c.

#define OPFLG_OUT2   0x0010 /* out2: P2 is an output */

Definition at line 9926 of file sqlite3.c.

#define OPFLG_OUT3   0x0020 /* out3: P3 is an output */

Definition at line 9927 of file sqlite3.c.

#define OpHelp (   X)

Definition at line 25093 of file sqlite3.c.

#define OptimizationDisabled (   db,
  mask 
)    (((db)->dbOptFlags&(mask))!=0)

Definition at line 11171 of file sqlite3.c.

#define OptimizationEnabled (   db,
  mask 
)    (((db)->dbOptFlags&(mask))==0)

Definition at line 11172 of file sqlite3.c.

#define OS_VXWORKS   0

Definition at line 123 of file sqlite3.c.

#define osAccess   ((int(*)(const char*,int))aSyscall[2].pCurrent)
#define osClose   ((int(*)(int))aSyscall[1].pCurrent)
#define osFallocate   ((int(*)(int,off_t,off_t))aSyscall[15].pCurrent)
#define osFchmod   ((int(*)(int,mode_t))aSyscall[14].pCurrent)
#define osFchown   ((int(*)(int,uid_t,gid_t))aSyscall[20].pCurrent)
#define osFcntl   ((int(*)(int,int,...))aSyscall[7].pCurrent)
#define osFstat   ((int(*)(int,struct stat*))aSyscall[5].pCurrent)
#define osFtruncate   ((int(*)(int,off_t))aSyscall[6].pCurrent)
#define osGetcwd   ((char*(*)(char*,size_t))aSyscall[3].pCurrent)
#define osGetpagesize   ((int(*)(void))aSyscall[24].pCurrent)
#define osGetpid (   X)    (pid_t)getpid()

Definition at line 25413 of file sqlite3.c.

#define osMkdir   ((int(*)(const char*,mode_t))aSyscall[18].pCurrent)
#define osMmap   ((void*(*)(void*,size_t,int,int,int,off_t))aSyscall[21].pCurrent)
#define osMremap   ((void*(*)(void*,size_t,size_t,int,...))aSyscall[23].pCurrent)
#define osMunmap   ((void*(*)(void*,size_t))aSyscall[22].pCurrent)
#define osOpen   ((int(*)(const char*,int,int))aSyscall[0].pCurrent)
#define osOpenDirectory   ((int(*)(const char*,int*))aSyscall[17].pCurrent)
#define osPread   ((ssize_t(*)(int,void*,size_t,off_t))aSyscall[9].pCurrent)
#define osPread64   ((ssize_t(*)(int,void*,size_t,off_t))aSyscall[10].pCurrent)
#define osPwrite
Value:
((ssize_t(*)(int,const void*,size_t,off_t))\
aSyscall[12].pCurrent)
#define osPwrite64
Value:
((ssize_t(*)(int,const void*,size_t,off_t))\
aSyscall[13].pCurrent)
#define osRead   ((ssize_t(*)(int,void*,size_t))aSyscall[8].pCurrent)
#define osRmdir   ((int(*)(const char*))aSyscall[19].pCurrent)
#define osStat   ((int(*)(const char*,struct stat*))aSyscall[4].pCurrent)
#define OSTRACE (   X)

Definition at line 25566 of file sqlite3.c.

#define osUnlink   ((int(*)(const char*))aSyscall[16].pCurrent)
#define osWrite   ((ssize_t(*)(int,const void*,size_t))aSyscall[11].pCurrent)
#define P4_ADVANCE   (-19) /* P4 is a pointer to BtreeNext() or BtreePrev() */

Definition at line 9716 of file sqlite3.c.

#define P4_COLLSEQ   (-4) /* P4 is a pointer to a CollSeq structure */

Definition at line 9704 of file sqlite3.c.

#define P4_DYNAMIC   (-1) /* Pointer to a string obtained from sqliteMalloc() */

Definition at line 9702 of file sqlite3.c.

#define P4_FUNCDEF   (-5) /* P4 is a pointer to a FuncDef structure */

Definition at line 9705 of file sqlite3.c.

#define P4_INT32   (-14) /* P4 is a 32-bit signed integer */

Definition at line 9713 of file sqlite3.c.

#define P4_INT64   (-13) /* P4 is a 64-bit signed integer */

Definition at line 9712 of file sqlite3.c.

#define P4_INTARRAY   (-15) /* P4 is a vector of 32-bit integers */

Definition at line 9714 of file sqlite3.c.

#define P4_KEYINFO   (-6) /* P4 is a pointer to a KeyInfo structure */

Definition at line 9706 of file sqlite3.c.

#define P4_MEM   (-8) /* P4 is a pointer to a Mem* structure */

Definition at line 9707 of file sqlite3.c.

#define P4_MPRINTF   (-11) /* P4 is a string obtained from sqlite3_mprintf() */

Definition at line 9710 of file sqlite3.c.

#define P4_NOTUSED   0 /* The P4 parameter is not used */

Definition at line 9701 of file sqlite3.c.

#define P4_REAL   (-12) /* P4 is a 64-bit floating point value */

Definition at line 9711 of file sqlite3.c.

#define P4_STATIC   (-2) /* Pointer to a static string */

Definition at line 9703 of file sqlite3.c.

#define P4_SUBPROGRAM   (-18) /* P4 is a pointer to a SubProgram structure */

Definition at line 9715 of file sqlite3.c.

#define P4_TRANSIENT   0 /* P4 is a pointer to a transient string */

Definition at line 9708 of file sqlite3.c.

#define P4_VTAB   (-10) /* P4 is a pointer to an sqlite3_vtab structure */

Definition at line 9709 of file sqlite3.c.

#define P5_ConstraintCheck   3

Definition at line 9721 of file sqlite3.c.

#define P5_ConstraintFK   4

Definition at line 9722 of file sqlite3.c.

#define P5_ConstraintNotNull   1

Definition at line 9719 of file sqlite3.c.

#define P5_ConstraintUnique   2

Definition at line 9720 of file sqlite3.c.

#define PAGER_CACHESPILL   0x10 /* PRAGMA cache_spill=ON */

Definition at line 10184 of file sqlite3.c.

#define PAGER_CKPT_FULLFSYNC   0x08 /* PRAGMA checkpoint_fullfsync=ON */

Definition at line 10183 of file sqlite3.c.

#define pager_datahash (   X,
 
)    0

Definition at line 42871 of file sqlite3.c.

#define PAGER_ERROR   6

Definition at line 42020 of file sqlite3.c.

#define PAGER_FLAGS_MASK   0x1c /* All above except SYNCHRONOUS */

Definition at line 10185 of file sqlite3.c.

#define PAGER_FULLFSYNC   0x04 /* PRAGMA fullfsync=ON */

Definition at line 10182 of file sqlite3.c.

#define PAGER_GET_NOCONTENT   0x01 /* Do not load data from disk */

Definition at line 10172 of file sqlite3.c.

#define PAGER_GET_READONLY   0x02 /* Read-only page is acceptable */

Definition at line 10173 of file sqlite3.c.

#define PAGER_INCR (   v)

Definition at line 42391 of file sqlite3.c.

#define PAGER_JOURNALMODE_DELETE   0 /* Commit by deleting journal file */

Definition at line 10162 of file sqlite3.c.

#define PAGER_JOURNALMODE_MEMORY   4 /* In-memory journal file */

Definition at line 10166 of file sqlite3.c.

#define PAGER_JOURNALMODE_OFF   2 /* Journal omitted. */

Definition at line 10164 of file sqlite3.c.

#define PAGER_JOURNALMODE_PERSIST   1 /* Commit by zeroing journal header */

Definition at line 10163 of file sqlite3.c.

#define PAGER_JOURNALMODE_QUERY   (-1) /* Query the value of journalmode */

Definition at line 10161 of file sqlite3.c.

#define PAGER_JOURNALMODE_TRUNCATE   3 /* Commit by truncating journal */

Definition at line 10165 of file sqlite3.c.

#define PAGER_JOURNALMODE_WAL   5 /* Use write-ahead logging */

Definition at line 10167 of file sqlite3.c.

#define PAGER_LOCKINGMODE_EXCLUSIVE   1

Definition at line 10156 of file sqlite3.c.

#define PAGER_LOCKINGMODE_NORMAL   0

Definition at line 10155 of file sqlite3.c.

#define PAGER_LOCKINGMODE_QUERY   -1

Definition at line 10154 of file sqlite3.c.

#define PAGER_MAX_PGNO   2147483647

Definition at line 42460 of file sqlite3.c.

#define PAGER_MEMORY   0x0002 /* In-memory database */

Definition at line 10149 of file sqlite3.c.

#define PAGER_MJ_PGNO (   x)    ((Pgno)((PENDING_BYTE/((x)->pageSize))+1))

Definition at line 10141 of file sqlite3.c.

#define PAGER_OMIT_JOURNAL   0x0001 /* Do not use a rollback journal */

Definition at line 10148 of file sqlite3.c.

#define PAGER_OPEN   0

Definition at line 42014 of file sqlite3.c.

#define pager_pagehash (   X)    0

Definition at line 42872 of file sqlite3.c.

#define PAGER_READER   1

Definition at line 42015 of file sqlite3.c.

#define pager_set_pagehash (   X)

Definition at line 42873 of file sqlite3.c.

#define PAGER_STAT_HIT   0

Definition at line 42376 of file sqlite3.c.

#define PAGER_STAT_MISS   1

Definition at line 42377 of file sqlite3.c.

#define PAGER_STAT_WRITE   2

Definition at line 42378 of file sqlite3.c.

#define PAGER_SYNCHRONOUS_FULL   0x03 /* PRAGMA synchronous=FULL */

Definition at line 10180 of file sqlite3.c.

#define PAGER_SYNCHRONOUS_MASK   0x03 /* Mask for three values above */

Definition at line 10181 of file sqlite3.c.

#define PAGER_SYNCHRONOUS_NORMAL   0x02 /* PRAGMA synchronous=NORMAL */

Definition at line 10179 of file sqlite3.c.

#define PAGER_SYNCHRONOUS_OFF   0x01 /* PRAGMA synchronous=OFF */

Definition at line 10178 of file sqlite3.c.

#define PAGER_WRITER_CACHEMOD   3

Definition at line 42017 of file sqlite3.c.

#define PAGER_WRITER_DBMOD   4

Definition at line 42018 of file sqlite3.c.

#define PAGER_WRITER_FINISHED   5

Definition at line 42019 of file sqlite3.c.

#define PAGER_WRITER_LOCKED   2

Definition at line 42016 of file sqlite3.c.

#define PAGERID (   p)    ((int)(p->fd))

Definition at line 41794 of file sqlite3.c.

#define pagerReportSize (   X)    /* No-op if we do not support a codec */

Definition at line 43776 of file sqlite3.c.

#define PAGERTRACE (   X)

Definition at line 41783 of file sqlite3.c.

#define PARTLY_WITHIN   1 /* Object partially overlaps query region */

Definition at line 8029 of file sqlite3.c.

#define pcache1   (GLOBAL(struct PCacheGlobal, pcache1_g))

Definition at line 40104 of file sqlite3.c.

#define pcache1EnterMutex (   X)    sqlite3_mutex_enter((X)->mutex)

Definition at line 40109 of file sqlite3.c.

#define pcache1LeaveMutex (   X)    sqlite3_mutex_leave((X)->mutex)

Definition at line 40110 of file sqlite3.c.

#define PCACHE_DIRTYLIST_ADD   2 /* Add pPage to the dirty list */

Definition at line 39324 of file sqlite3.c.

#define PCACHE_DIRTYLIST_FRONT   3 /* Move pPage to the front of the list */

Definition at line 39325 of file sqlite3.c.

#define PCACHE_DIRTYLIST_REMOVE   1 /* Remove pPage from dirty list */

Definition at line 39323 of file sqlite3.c.

#define PENDING_BYTE   sqlite3PendingByte

Definition at line 10689 of file sqlite3.c.

#define PENDING_BYTE_PAGE (   pBt)    PAGER_MJ_PGNO(pBt)

Definition at line 52684 of file sqlite3.c.

#define PENDING_LOCK   3

Definition at line 10628 of file sqlite3.c.

#define PGHDR_DIRTY   0x002 /* Page has changed */

Definition at line 10355 of file sqlite3.c.

#define PGHDR_DONT_WRITE   0x020 /* Do not write content to disk */

Definition at line 10360 of file sqlite3.c.

#define PGHDR_MMAP   0x040 /* This is an mmap page object */

Definition at line 10362 of file sqlite3.c.

#define PGHDR_NEED_READ   0x008 /* Content is unread */

Definition at line 10358 of file sqlite3.c.

#define PGHDR_NEED_SYNC
Value:
0x004 /* Fsync the rollback journal before
** writing this page to the database */

Definition at line 10356 of file sqlite3.c.

#define PGHDR_REUSE_UNLIKELY   0x010 /* A hint that reuse is unlikely */

Definition at line 10359 of file sqlite3.c.

#define PragFlag_NeedSchema   0x01

Definition at line 103216 of file sqlite3.c.

#define PragFlag_ReadOnly   0x02

Definition at line 103217 of file sqlite3.c.

#define PragTyp_ACTIVATE_EXTENSIONS   36

Definition at line 103210 of file sqlite3.c.

#define PragTyp_AUTO_VACUUM   1

Definition at line 103175 of file sqlite3.c.

#define PragTyp_BUSY_TIMEOUT   3

Definition at line 103177 of file sqlite3.c.

#define PragTyp_CACHE_SIZE   4

Definition at line 103178 of file sqlite3.c.

#define PragTyp_CASE_SENSITIVE_LIKE   5

Definition at line 103179 of file sqlite3.c.

#define PragTyp_COLLATION_LIST   6

Definition at line 103180 of file sqlite3.c.

#define PragTyp_COMPILE_OPTIONS   7

Definition at line 103181 of file sqlite3.c.

#define PragTyp_DATA_STORE_DIRECTORY   8

Definition at line 103182 of file sqlite3.c.

#define PragTyp_DATABASE_LIST   9

Definition at line 103183 of file sqlite3.c.

#define PragTyp_DEFAULT_CACHE_SIZE   10

Definition at line 103184 of file sqlite3.c.

#define PragTyp_ENCODING   11

Definition at line 103185 of file sqlite3.c.

#define PragTyp_FLAG   2

Definition at line 103176 of file sqlite3.c.

#define PragTyp_FOREIGN_KEY_CHECK   12

Definition at line 103186 of file sqlite3.c.

#define PragTyp_FOREIGN_KEY_LIST   13

Definition at line 103187 of file sqlite3.c.

#define PragTyp_HEADER_VALUE   0

Definition at line 103174 of file sqlite3.c.

#define PragTyp_HEXKEY   37

Definition at line 103211 of file sqlite3.c.

#define PragTyp_INCREMENTAL_VACUUM   14

Definition at line 103188 of file sqlite3.c.

#define PragTyp_INDEX_INFO   15

Definition at line 103189 of file sqlite3.c.

#define PragTyp_INDEX_LIST   16

Definition at line 103190 of file sqlite3.c.

#define PragTyp_INTEGRITY_CHECK   17

Definition at line 103191 of file sqlite3.c.

#define PragTyp_JOURNAL_MODE   18

Definition at line 103192 of file sqlite3.c.

#define PragTyp_JOURNAL_SIZE_LIMIT   19

Definition at line 103193 of file sqlite3.c.

#define PragTyp_KEY   38

Definition at line 103212 of file sqlite3.c.

#define PragTyp_LOCK_PROXY_FILE   20

Definition at line 103194 of file sqlite3.c.

#define PragTyp_LOCK_STATUS   40

Definition at line 103214 of file sqlite3.c.

#define PragTyp_LOCKING_MODE   21

Definition at line 103195 of file sqlite3.c.

#define PragTyp_MMAP_SIZE   23

Definition at line 103197 of file sqlite3.c.

#define PragTyp_PAGE_COUNT   22

Definition at line 103196 of file sqlite3.c.

#define PragTyp_PAGE_SIZE   24

Definition at line 103198 of file sqlite3.c.

#define PragTyp_PARSER_TRACE   41

Definition at line 103215 of file sqlite3.c.

#define PragTyp_REKEY   39

Definition at line 103213 of file sqlite3.c.

#define PragTyp_SECURE_DELETE   25

Definition at line 103199 of file sqlite3.c.

#define PragTyp_SHRINK_MEMORY   26

Definition at line 103200 of file sqlite3.c.

#define PragTyp_SOFT_HEAP_LIMIT   27

Definition at line 103201 of file sqlite3.c.

#define PragTyp_STATS   28

Definition at line 103202 of file sqlite3.c.

#define PragTyp_SYNCHRONOUS   29

Definition at line 103203 of file sqlite3.c.

#define PragTyp_TABLE_INFO   30

Definition at line 103204 of file sqlite3.c.

#define PragTyp_TEMP_STORE   31

Definition at line 103205 of file sqlite3.c.

#define PragTyp_TEMP_STORE_DIRECTORY   32

Definition at line 103206 of file sqlite3.c.

#define PragTyp_THREADS   33

Definition at line 103207 of file sqlite3.c.

#define PragTyp_WAL_AUTOCHECKPOINT   34

Definition at line 103208 of file sqlite3.c.

#define PragTyp_WAL_CHECKPOINT   35

Definition at line 103209 of file sqlite3.c.

#define PTF_INTKEY   0x01

Definition at line 52367 of file sqlite3.c.

#define PTF_LEAF   0x08

Definition at line 52370 of file sqlite3.c.

#define PTF_LEAFDATA   0x04

Definition at line 52369 of file sqlite3.c.

#define PTF_ZERODATA   0x02

Definition at line 52368 of file sqlite3.c.

#define PTRMAP_BTREE   5

Definition at line 52740 of file sqlite3.c.

#define PTRMAP_FREEPAGE   2

Definition at line 52737 of file sqlite3.c.

#define PTRMAP_ISPAGE (   pBt,
  pgno 
)    (PTRMAP_PAGENO((pBt),(pgno))==(pgno))

Definition at line 52703 of file sqlite3.c.

#define PTRMAP_OVERFLOW1   3

Definition at line 52738 of file sqlite3.c.

#define PTRMAP_OVERFLOW2   4

Definition at line 52739 of file sqlite3.c.

#define PTRMAP_PAGENO (   pBt,
  pgno 
)    ptrmapPageno(pBt, pgno)

Definition at line 52701 of file sqlite3.c.

#define PTRMAP_PTROFFSET (   pgptrmap,
  pgno 
)    (5*(pgno-pgptrmap-1))

Definition at line 52702 of file sqlite3.c.

#define PTRMAP_ROOTPAGE   1

Definition at line 52736 of file sqlite3.c.

#define put2byte (   p,
 
)    ((p)[0] = (u8)((v)>>8), (p)[1] = (u8)(v))

Definition at line 52792 of file sqlite3.c.

#define put32bits (   A,
 
)    sqlite3Put4byte((u8*)A,B)

Definition at line 42730 of file sqlite3.c.

#define put4byte   sqlite3Put4byte

Definition at line 52794 of file sqlite3.c.

#define putVarint   sqlite3PutVarint

Definition at line 13403 of file sqlite3.c.

#define putVarint32 (   A,
 
)
Value:
(u8)(((u32)(B)<(u32)0x80)?(*(A)=(unsigned char)(B)),1:\
UINT8_TYPE u8
Definition: sqlite3.c:8959
UINT32_TYPE u32
Definition: sqlite3.c:8956
SQLITE_PRIVATE int sqlite3PutVarint(unsigned char *, u64)
Definition: sqlite3.c:24185

Definition at line 13399 of file sqlite3.c.

#define READ_LOCK   1

Definition at line 52435 of file sqlite3.c.

#define READ_UTF16BE (   zIn,
  TERM,
 
)
Value:
{ \
c = ((*zIn++)<<8); \
c += (*zIn++); \
if( c>=0xD800 && c<0xE000 && TERM ){ \
int c2 = ((*zIn++)<<8); \
c2 += (*zIn++); \
c = (c2&0x03FF) + ((c&0x003F)<<10) + (((c&0x03C0)+0x0040)<<10); \
} \
}

Definition at line 23025 of file sqlite3.c.

#define READ_UTF16LE (   zIn,
  TERM,
 
)
Value:
{ \
c = (*zIn++); \
c += ((*zIn++)<<8); \
if( c>=0xD800 && c<0xE000 && TERM ){ \
int c2 = (*zIn++); \
c2 += ((*zIn++)<<8); \
c = (c2&0x03FF) + ((c&0x003F)<<10) + (((c&0x03C0)+0x0040)<<10); \
} \
}

Definition at line 23015 of file sqlite3.c.

#define READ_UTF8 (   zIn,
  zTerm,
 
)
Value:
c = *(zIn++); \
if( c>=0xc0 ){ \
c = sqlite3Utf8Trans1[c-0xc0]; \
while( zIn!=zTerm && (*zIn & 0xc0)==0x80 ){ \
c = (c<<6) + (0x3f & *(zIn++)); \
} \
if( c<0x80 \
|| (c&0xFFFFF800)==0xD800 \
|| (c&0xFFFFFFFE)==0xFFFE ){ c = 0xFFFD; } \
}

Definition at line 23062 of file sqlite3.c.

#define READMARK_NOT_USED   0xffffffff

Definition at line 49301 of file sqlite3.c.

#define REGISTER_TRACE (   R,
 
)

Definition at line 71258 of file sqlite3.c.

#define RESERVED_BYTE   (PENDING_BYTE+1)

Definition at line 10691 of file sqlite3.c.

#define RESERVED_LOCK   2

Definition at line 10627 of file sqlite3.c.

#define restoreCursorPosition (   p)
Value:
(p->eState>=CURSOR_REQUIRESEEK ? \
btreeRestoreCursorPosition(p) : \
#define SQLITE_OK
Definition: sqlite3.c:611
#define CURSOR_REQUIRESEEK
Definition: sqlite3.c:52678

Definition at line 53856 of file sqlite3.c.

#define ROUND8 (   x)    (((x)+7)&~7)

Definition at line 9070 of file sqlite3.c.

#define ROUNDDOWN8 (   x)    ((x)&~7)

Definition at line 9075 of file sqlite3.c.

#define ROWSET_ALLOCATION_SIZE   1024

Definition at line 41082 of file sqlite3.c.

#define ROWSET_ENTRY_PER_CHUNK   ((ROWSET_ALLOCATION_SIZE-8)/sizeof(struct RowSetEntry))

Definition at line 41087 of file sqlite3.c.

#define ROWSET_NEXT   0x02 /* True if sqlite3RowSetNext() has been called */

Definition at line 41136 of file sqlite3.c.

#define ROWSET_SORTED   0x01 /* True if RowSet.pEntry is sorted */

Definition at line 41135 of file sqlite3.c.

#define SAVE_SZ   (sizeof(Parse) - offsetof(Parse,nVar))
#define SAVEPOINT_BEGIN   0

Definition at line 11320 of file sqlite3.c.

#define SAVEPOINT_RELEASE   1

Definition at line 11321 of file sqlite3.c.

#define SAVEPOINT_ROLLBACK   2

Definition at line 11322 of file sqlite3.c.

#define SCHEMA_ENC (   db)    ((db)->aDb[0].pSchema->enc)

Definition at line 11109 of file sqlite3.c.

#define SCHEMA_TABLE (   x)    ((!OMIT_TEMPDB)&&(x==1)?TEMP_MASTER_NAME:MASTER_NAME)

Definition at line 9192 of file sqlite3.c.

#define SELECTTRACE (   K,
  P,
  S,
 
)

Definition at line 106503 of file sqlite3.c.

#define SELECTTRACE_ENABLED   0

Definition at line 9157 of file sqlite3.c.

#define SET_FULLSYNC (   x,
 
)

Definition at line 10573 of file sqlite3.c.

#define SETBIT (   V,
 
)    V[I>>3] |= (1<<(I&7))

Definition at line 39176 of file sqlite3.c.

#define SF_Aggregate   0x0004 /* Contains aggregate functions */

Definition at line 12305 of file sqlite3.c.

#define SF_Compound   0x0040 /* Part of a compound query */

Definition at line 12309 of file sqlite3.c.

#define SF_Converted   0x2000 /* By convertCompoundSelectToSubquery() */

Definition at line 12316 of file sqlite3.c.

#define SF_Distinct   0x0001 /* Output should be DISTINCT */

Definition at line 12303 of file sqlite3.c.

#define SF_Expanded   0x0010 /* sqlite3SelectExpand() called on this */

Definition at line 12307 of file sqlite3.c.

#define SF_HasTypeInfo   0x0020 /* FROM subqueries have Table metadata */

Definition at line 12308 of file sqlite3.c.

#define SF_MaybeConvert   0x0400 /* Need convertCompoundSelectToSubquery() */

Definition at line 12313 of file sqlite3.c.

#define SF_MinMaxAgg   0x1000 /* Aggregate containing min() or max() */

Definition at line 12315 of file sqlite3.c.

#define SF_MultiValue   0x0100 /* Single VALUES term with multiple rows */

Definition at line 12311 of file sqlite3.c.

#define SF_NestedFrom   0x0200 /* Part of a parenthesized FROM clause */

Definition at line 12312 of file sqlite3.c.

#define SF_Recursive   0x0800 /* The recursive part of a recursive CTE */

Definition at line 12314 of file sqlite3.c.

#define SF_Resolved   0x0002 /* Identifiers have been resolved */

Definition at line 12304 of file sqlite3.c.

#define SF_UsesEphemeral   0x0008 /* Uses the OpenEphemeral opcode */

Definition at line 12306 of file sqlite3.c.

#define SF_Values   0x0080 /* Synthesized from VALUES clause */

Definition at line 12310 of file sqlite3.c.

#define SHARED_FIRST   (PENDING_BYTE+2)

Definition at line 10692 of file sqlite3.c.

#define SHARED_LOCK   1

Definition at line 10626 of file sqlite3.c.

#define SHARED_SIZE   510

Definition at line 10693 of file sqlite3.c.

#define SimulateDiskfullError (   A)

Definition at line 25718 of file sqlite3.c.

#define SimulateIOError (   A)

Definition at line 25717 of file sqlite3.c.

#define SimulateIOErrorBenign (   X)

Definition at line 25716 of file sqlite3.c.

#define SLOT_2_0   0x001fc07f

Definition at line 24207 of file sqlite3.c.

#define SLOT_4_2_0   0xf01fc07f

Definition at line 24208 of file sqlite3.c.

#define SMALLEST_INT64   (((i64)-1) - LARGEST_INT64)

Definition at line 9064 of file sqlite3.c.

#define SORTER_MAX_MERGE_COUNT   16

Definition at line 78389 of file sqlite3.c.

#define SORTER_TYPE_INTEGER   0x01

Definition at line 78267 of file sqlite3.c.

#define SORTER_TYPE_TEXT   0x02

Definition at line 78268 of file sqlite3.c.

#define SORTFLAG_UseSorter   0x01 /* Use SorterOpen instead of OpenEphemeral */

Definition at line 106534 of file sqlite3.c.

#define SPILLFLAG_NOSYNC   0x04 /* Spill is ok, but do not sync */

Definition at line 42124 of file sqlite3.c.

#define SPILLFLAG_OFF   0x01 /* Never spill cache. Set via pragma */

Definition at line 42122 of file sqlite3.c.

#define SPILLFLAG_ROLLBACK   0x02 /* Current rolling back, so do not spill */

Definition at line 42123 of file sqlite3.c.

#define sqlite3_column_database_name   0

Definition at line 102395 of file sqlite3.c.

#define sqlite3_column_database_name16   0

Definition at line 102396 of file sqlite3.c.

#define sqlite3_column_origin_name   0

Definition at line 102399 of file sqlite3.c.

#define sqlite3_column_origin_name16   0

Definition at line 102400 of file sqlite3.c.

#define sqlite3_column_table_name   0

Definition at line 102397 of file sqlite3.c.

#define sqlite3_column_table_name16   0

Definition at line 102398 of file sqlite3.c.

#define SQLITE3_MUTEX_INITIALIZER   { PTHREAD_MUTEX_INITIALIZER }

Definition at line 19531 of file sqlite3.c.

#define SQLITE3_TEXT   3

Definition at line 4096 of file sqlite3.c.

#define sqlite3ConnectionBlocked (   x,
 
)

Definition at line 13714 of file sqlite3.c.

#define sqlite3ConnectionClosed (   x)

Definition at line 13716 of file sqlite3.c.

#define sqlite3ConnectionUnlocked (   x)

Definition at line 13715 of file sqlite3.c.

#define sqlite3FileSuffix3 (   X,
 
)

Definition at line 13441 of file sqlite3.c.

#define sqlite3GlobalConfig   sqlite3Config

Definition at line 9238 of file sqlite3.c.

#define sqlite3Isalnum (   x)    (sqlite3CtypeMap[(unsigned char)(x)]&0x06)

Definition at line 12961 of file sqlite3.c.

#define sqlite3Isalpha (   x)    (sqlite3CtypeMap[(unsigned char)(x)]&0x02)

Definition at line 12962 of file sqlite3.c.

#define sqlite3Isdigit (   x)    (sqlite3CtypeMap[(unsigned char)(x)]&0x04)

Definition at line 12963 of file sqlite3.c.

#define sqlite3IsNumericAffinity (   X)    ((X)>=SQLITE_AFF_NUMERIC)

Definition at line 11401 of file sqlite3.c.

#define sqlite3Isspace (   x)    (sqlite3CtypeMap[(unsigned char)(x)]&0x01)

Definition at line 12960 of file sqlite3.c.

#define sqlite3Isxdigit (   x)    (sqlite3CtypeMap[(unsigned char)(x)]&0x08)

Definition at line 12964 of file sqlite3.c.

#define sqlite3JournalExists (   p)    1

Definition at line 13690 of file sqlite3.c.

#define sqlite3JournalSize (   pVfs)    ((pVfs)->szOsFile)

Definition at line 13689 of file sqlite3.c.

#define sqlite3MemdebugHasType (   X,
 
)    1

Definition at line 13771 of file sqlite3.c.

#define sqlite3MemdebugNoType (   X,
 
)    1

Definition at line 13772 of file sqlite3.c.

#define sqlite3MemdebugSetType (   X,
 
)    /* no-op */

Definition at line 13770 of file sqlite3.c.

#define sqlite3PagerGet (   A,
  B,
 
)    sqlite3PagerAcquire(A,B,C,0)

Definition at line 10223 of file sqlite3.c.

#define sqlite3ParserARG_FETCH   Parse *pParse = yypParser->pParse

Definition at line 123470 of file sqlite3.c.

#define sqlite3ParserARG_PDECL   ,Parse *pParse

Definition at line 123469 of file sqlite3.c.

#define sqlite3ParserARG_SDECL   Parse *pParse;

Definition at line 123468 of file sqlite3.c.

#define sqlite3ParserARG_STORE   yypParser->pParse = pParse

Definition at line 123471 of file sqlite3.c.

#define sqlite3ParserTOKENTYPE   Token

Definition at line 123445 of file sqlite3.c.

#define sqlite3ParseToplevel (   p)    ((p)->pToplevel ? (p)->pToplevel : (p))

Definition at line 13333 of file sqlite3.c.

#define sqlite3SelectSetName (   A,
 
)

Definition at line 13297 of file sqlite3.c.

#define sqlite3StackAllocRaw (   D,
 
)    sqlite3DbMallocRaw(D,N)

Definition at line 13019 of file sqlite3.c.

#define sqlite3StackAllocZero (   D,
 
)    sqlite3DbMallocZero(D,N)

Definition at line 13020 of file sqlite3.c.

#define sqlite3StackFree (   D,
 
)    sqlite3DbFree(D,P)

Definition at line 13021 of file sqlite3.c.

#define sqlite3StrICmp   sqlite3_stricmp

Definition at line 12980 of file sqlite3.c.

#define sqlite3StrNICmp   sqlite3_strnicmp

Definition at line 12982 of file sqlite3.c.

#define sqlite3Tolower (   x)    (sqlite3UpperToLower[(unsigned char)(x)])

Definition at line 12965 of file sqlite3.c.

#define sqlite3Toupper (   x)    ((x)&~(sqlite3CtypeMap[(unsigned char)(x)]&0x20))

Definition at line 12959 of file sqlite3.c.

#define sqlite3VdbeIOTraceSql (   X)

Definition at line 13734 of file sqlite3.c.

#define sqlite3VdbeScanStatus (   a,
  b,
  c,
  d,
 
)

Definition at line 10080 of file sqlite3.c.

#define sqlite3VtabInSync (   db)    ((db)->nVTrans>0 && (db)->aVTrans==0)

Definition at line 13583 of file sqlite3.c.

#define SQLITE_ABORT   4 /* Callback routine requested an abort */

Definition at line 616 of file sqlite3.c.

#define SQLITE_ABORT_ROLLBACK   (SQLITE_ABORT | (2<<8))

Definition at line 699 of file sqlite3.c.

#define SQLITE_ACCESS_EXISTS   0

Definition at line 1435 of file sqlite3.c.

#define SQLITE_ACCESS_READ   2 /* Unused */

Definition at line 1437 of file sqlite3.c.

#define SQLITE_ACCESS_READWRITE   1 /* Used by PRAGMA temp_store_directory */

Definition at line 1436 of file sqlite3.c.

#define SQLITE_AFF_INTEGER   'D'

Definition at line 11398 of file sqlite3.c.

#define SQLITE_AFF_MASK   0x47

Definition at line 11407 of file sqlite3.c.

#define SQLITE_AFF_NONE   'A'

Definition at line 11395 of file sqlite3.c.

#define SQLITE_AFF_NUMERIC   'C'

Definition at line 11397 of file sqlite3.c.

#define SQLITE_AFF_REAL   'E'

Definition at line 11399 of file sqlite3.c.

#define SQLITE_AFF_TEXT   'B'

Definition at line 11396 of file sqlite3.c.

#define SQLITE_AllOpts   0xffff /* All optimizations */

Definition at line 11165 of file sqlite3.c.

#define SQLITE_ALLOW_COVERING_INDEX_SCAN   1

Definition at line 13941 of file sqlite3.c.

#define SQLITE_ALTER_TABLE   26 /* Database Name Table Name */

Definition at line 2868 of file sqlite3.c.

#define SQLITE_AMALGAMATION   1

Definition at line 21 of file sqlite3.c.

#define SQLITE_ANALYZE   28 /* Table Name NULL */

Definition at line 2870 of file sqlite3.c.

#define SQLITE_ANY   5 /* Deprecated */

Definition at line 4467 of file sqlite3.c.

#define SQLITE_API

Definition at line 259 of file sqlite3.c.

#define SQLITE_ASCII   1

Definition at line 8906 of file sqlite3.c.

#define SQLITE_ATTACH   24 /* Filename NULL */

Definition at line 2866 of file sqlite3.c.

#define SQLITE_AUTH   23 /* Authorization denied */

Definition at line 635 of file sqlite3.c.

#define SQLITE_AUTH_USER   (SQLITE_AUTH | (1<<8))

Definition at line 713 of file sqlite3.c.

#define SQLITE_AutoIndex   0x00100000 /* Enable automatic indexes */

Definition at line 11138 of file sqlite3.c.

#define SQLITE_BIG_DBL   (1e99)

Definition at line 8817 of file sqlite3.c.

#define SQLITE_BIGENDIAN   (*(char *)(&sqlite3one)==0)

Definition at line 9053 of file sqlite3.c.

#define SQLITE_BLOB   4

Definition at line 4089 of file sqlite3.c.

#define SQLITE_BUSY   5 /* The database file is locked */

Definition at line 617 of file sqlite3.c.

#define SQLITE_BUSY_RECOVERY   (SQLITE_BUSY | (1<<8))

Definition at line 688 of file sqlite3.c.

#define SQLITE_BUSY_SNAPSHOT   (SQLITE_BUSY | (2<<8))

Definition at line 689 of file sqlite3.c.

#define SQLITE_BYTEORDER   0 /* 0 means "unknown at compile-time" */

Definition at line 9052 of file sqlite3.c.

#define SQLITE_CacheSpill   0x00000010 /* OK to spill pager cache */

Definition at line 11119 of file sqlite3.c.

#define SQLITE_CANTOPEN   14 /* Unable to open the database file */

Definition at line 626 of file sqlite3.c.

#define SQLITE_CANTOPEN_BKPT   sqlite3CantopenError(__LINE__)

Definition at line 12932 of file sqlite3.c.

#define SQLITE_CANTOPEN_CONVPATH   (SQLITE_CANTOPEN | (4<<8))

Definition at line 693 of file sqlite3.c.

#define SQLITE_CANTOPEN_FULLPATH   (SQLITE_CANTOPEN | (3<<8))

Definition at line 692 of file sqlite3.c.

#define SQLITE_CANTOPEN_ISDIR   (SQLITE_CANTOPEN | (2<<8))

Definition at line 691 of file sqlite3.c.

#define SQLITE_CANTOPEN_NOTEMPDIR   (SQLITE_CANTOPEN | (1<<8))

Definition at line 690 of file sqlite3.c.

#define SQLITE_CDECL

Definition at line 262 of file sqlite3.c.

#define SQLITE_CHECKPOINT_FULL   1 /* Wait for writers, then checkpoint */

Definition at line 7716 of file sqlite3.c.

#define SQLITE_CHECKPOINT_PASSIVE   0 /* Do as much as possible w/o blocking */

Definition at line 7715 of file sqlite3.c.

#define SQLITE_CHECKPOINT_RESTART   2 /* Like FULL but wait for for readers */

Definition at line 7717 of file sqlite3.c.

#define SQLITE_CHECKPOINT_TRUNCATE   3 /* Like RESTART but also truncate WAL */

Definition at line 7718 of file sqlite3.c.

#define SQLITE_CkptFullFSync   0x00000008 /* Use full fsync for checkpoint */

Definition at line 11118 of file sqlite3.c.

#define SQLITE_ColumnCache   0x0002 /* Column cache */

Definition at line 11154 of file sqlite3.c.

#define SQLITE_CONFIG_COVERING_INDEX_SCAN   20 /* int */

Definition at line 2016 of file sqlite3.c.

#define SQLITE_CONFIG_GETMALLOC   5 /* sqlite3_mem_methods* */

Definition at line 2001 of file sqlite3.c.

#define SQLITE_CONFIG_GETMUTEX   11 /* sqlite3_mutex_methods* */

Definition at line 2007 of file sqlite3.c.

#define SQLITE_CONFIG_GETPCACHE   15 /* no-op */

Definition at line 2011 of file sqlite3.c.

#define SQLITE_CONFIG_GETPCACHE2   19 /* sqlite3_pcache_methods2* */

Definition at line 2015 of file sqlite3.c.

#define SQLITE_CONFIG_HEAP   8 /* void*, int nByte, int min */

Definition at line 2004 of file sqlite3.c.

#define SQLITE_CONFIG_LOG   16 /* xFunc, void* */

Definition at line 2012 of file sqlite3.c.

#define SQLITE_CONFIG_LOOKASIDE   13 /* int int */

Definition at line 2009 of file sqlite3.c.

#define SQLITE_CONFIG_MALLOC   4 /* sqlite3_mem_methods* */

Definition at line 2000 of file sqlite3.c.

#define SQLITE_CONFIG_MEMSTATUS   9 /* boolean */

Definition at line 2005 of file sqlite3.c.

#define SQLITE_CONFIG_MMAP_SIZE   22 /* sqlite3_int64, sqlite3_int64 */

Definition at line 2018 of file sqlite3.c.

#define SQLITE_CONFIG_MULTITHREAD   2 /* nil */

Definition at line 1998 of file sqlite3.c.

#define SQLITE_CONFIG_MUTEX   10 /* sqlite3_mutex_methods* */

Definition at line 2006 of file sqlite3.c.

#define SQLITE_CONFIG_PAGECACHE   7 /* void*, int sz, int N */

Definition at line 2003 of file sqlite3.c.

#define SQLITE_CONFIG_PCACHE   14 /* no-op */

Definition at line 2010 of file sqlite3.c.

#define SQLITE_CONFIG_PCACHE2   18 /* sqlite3_pcache_methods2* */

Definition at line 2014 of file sqlite3.c.

#define SQLITE_CONFIG_PCACHE_HDRSZ   24 /* int *psz */

Definition at line 2020 of file sqlite3.c.

#define SQLITE_CONFIG_PMASZ   25 /* unsigned int szPma */

Definition at line 2021 of file sqlite3.c.

#define SQLITE_CONFIG_SCRATCH   6 /* void*, int sz, int N */

Definition at line 2002 of file sqlite3.c.

#define SQLITE_CONFIG_SERIALIZED   3 /* nil */

Definition at line 1999 of file sqlite3.c.

#define SQLITE_CONFIG_SINGLETHREAD   1 /* nil */

Definition at line 1997 of file sqlite3.c.

#define SQLITE_CONFIG_SQLLOG   21 /* xSqllog, void* */

Definition at line 2017 of file sqlite3.c.

#define SQLITE_CONFIG_URI   17 /* int */

Definition at line 2013 of file sqlite3.c.

#define SQLITE_CONFIG_WIN32_HEAPSIZE   23 /* int nByte */

Definition at line 2019 of file sqlite3.c.

#define SQLITE_CONSTRAINT   19 /* Abort due to constraint violation */

Definition at line 631 of file sqlite3.c.

#define SQLITE_CONSTRAINT_CHECK   (SQLITE_CONSTRAINT | (1<<8))

Definition at line 700 of file sqlite3.c.

#define SQLITE_CONSTRAINT_COMMITHOOK   (SQLITE_CONSTRAINT | (2<<8))

Definition at line 701 of file sqlite3.c.

#define SQLITE_CONSTRAINT_FOREIGNKEY   (SQLITE_CONSTRAINT | (3<<8))

Definition at line 702 of file sqlite3.c.

#define SQLITE_CONSTRAINT_FUNCTION   (SQLITE_CONSTRAINT | (4<<8))

Definition at line 703 of file sqlite3.c.

#define SQLITE_CONSTRAINT_NOTNULL   (SQLITE_CONSTRAINT | (5<<8))

Definition at line 704 of file sqlite3.c.

#define SQLITE_CONSTRAINT_PRIMARYKEY   (SQLITE_CONSTRAINT | (6<<8))

Definition at line 705 of file sqlite3.c.

#define SQLITE_CONSTRAINT_ROWID   (SQLITE_CONSTRAINT |(10<<8))

Definition at line 709 of file sqlite3.c.

#define SQLITE_CONSTRAINT_TRIGGER   (SQLITE_CONSTRAINT | (7<<8))

Definition at line 706 of file sqlite3.c.

#define SQLITE_CONSTRAINT_UNIQUE   (SQLITE_CONSTRAINT | (8<<8))

Definition at line 707 of file sqlite3.c.

#define SQLITE_CONSTRAINT_VTAB   (SQLITE_CONSTRAINT | (9<<8))

Definition at line 708 of file sqlite3.c.

#define SQLITE_COPY   0 /* No longer used */

Definition at line 2875 of file sqlite3.c.

#define SQLITE_CORE   1

Definition at line 20 of file sqlite3.c.

#define SQLITE_CORRUPT   11 /* The database disk image is malformed */

Definition at line 623 of file sqlite3.c.

#define SQLITE_CORRUPT_BKPT   sqlite3CorruptError(__LINE__)

Definition at line 12930 of file sqlite3.c.

#define SQLITE_CORRUPT_VTAB   (SQLITE_CORRUPT | (1<<8))

Definition at line 694 of file sqlite3.c.

#define SQLITE_CountRows   0x00000080 /* Count rows changed by INSERT, */

Definition at line 11122 of file sqlite3.c.

#define SQLITE_CoverIdxScan   0x0040 /* Covering index scans */

Definition at line 11159 of file sqlite3.c.

#define SQLITE_CREATE_INDEX   1 /* Index Name Table Name */

Definition at line 2843 of file sqlite3.c.

#define SQLITE_CREATE_TABLE   2 /* Table Name NULL */

Definition at line 2844 of file sqlite3.c.

#define SQLITE_CREATE_TEMP_INDEX   3 /* Index Name Table Name */

Definition at line 2845 of file sqlite3.c.

#define SQLITE_CREATE_TEMP_TABLE   4 /* Table Name NULL */

Definition at line 2846 of file sqlite3.c.

#define SQLITE_CREATE_TEMP_TRIGGER   5 /* Trigger Name Table Name */

Definition at line 2847 of file sqlite3.c.

#define SQLITE_CREATE_TEMP_VIEW   6 /* View Name NULL */

Definition at line 2848 of file sqlite3.c.

#define SQLITE_CREATE_TRIGGER   7 /* Trigger Name Table Name */

Definition at line 2849 of file sqlite3.c.

#define SQLITE_CREATE_VIEW   8 /* View Name NULL */

Definition at line 2850 of file sqlite3.c.

#define SQLITE_CREATE_VTABLE   29 /* Table Name Module Name */

Definition at line 2871 of file sqlite3.c.

#define SQLITE_DBCONFIG_ENABLE_FKEY   1002 /* int int* */

Definition at line 2082 of file sqlite3.c.

#define SQLITE_DBCONFIG_ENABLE_TRIGGER   1003 /* int int* */

Definition at line 2083 of file sqlite3.c.

#define SQLITE_DBCONFIG_LOOKASIDE   1001 /* void* int int */

Definition at line 2081 of file sqlite3.c.

#define SQLITE_DBSTATUS_CACHE_HIT   7

Definition at line 6831 of file sqlite3.c.

#define SQLITE_DBSTATUS_CACHE_MISS   8

Definition at line 6832 of file sqlite3.c.

#define SQLITE_DBSTATUS_CACHE_USED   1

Definition at line 6825 of file sqlite3.c.

#define SQLITE_DBSTATUS_CACHE_WRITE   9

Definition at line 6833 of file sqlite3.c.

#define SQLITE_DBSTATUS_DEFERRED_FKS   10

Definition at line 6834 of file sqlite3.c.

#define SQLITE_DBSTATUS_LOOKASIDE_HIT   4

Definition at line 6828 of file sqlite3.c.

#define SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL   6

Definition at line 6830 of file sqlite3.c.

#define SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE   5

Definition at line 6829 of file sqlite3.c.

#define SQLITE_DBSTATUS_LOOKASIDE_USED   0

Definition at line 6824 of file sqlite3.c.

#define SQLITE_DBSTATUS_MAX   10 /* Largest defined DBSTATUS */

Definition at line 6835 of file sqlite3.c.

#define SQLITE_DBSTATUS_SCHEMA_USED   2

Definition at line 6826 of file sqlite3.c.

#define SQLITE_DBSTATUS_STMT_USED   3

Definition at line 6827 of file sqlite3.c.

#define SQLITE_DEFAULT_AUTOVACUUM   0

Definition at line 9345 of file sqlite3.c.

#define SQLITE_DEFAULT_CACHE_SIZE   2000

Definition at line 8162 of file sqlite3.c.

#define SQLITE_DEFAULT_FILE_FORMAT   4

Definition at line 8839 of file sqlite3.c.

#define SQLITE_DEFAULT_FILE_PERMISSIONS   0644

Definition at line 25396 of file sqlite3.c.

#define SQLITE_DEFAULT_JOURNAL_SIZE_LIMIT   -1

Definition at line 10114 of file sqlite3.c.

#define SQLITE_DEFAULT_MEMSTATUS   1

Definition at line 8361 of file sqlite3.c.

#define SQLITE_DEFAULT_MMAP_SIZE   0

Definition at line 9128 of file sqlite3.c.

#define SQLITE_DEFAULT_MMAP_SIZE_xc   1 /* Exclude from ctime.c */

Definition at line 9129 of file sqlite3.c.

#define SQLITE_DEFAULT_PAGE_SIZE   1024

Definition at line 8211 of file sqlite3.c.

#define SQLITE_DEFAULT_PROXYDIR_PERMISSIONS   0755

Definition at line 25403 of file sqlite3.c.

#define SQLITE_DEFAULT_RECURSIVE_TRIGGERS   0

Definition at line 8847 of file sqlite3.c.

#define SQLITE_DEFAULT_SECTOR_SIZE   4096

Definition at line 10580 of file sqlite3.c.

#define SQLITE_DEFAULT_WAL_AUTOCHECKPOINT   1000

Definition at line 8170 of file sqlite3.c.

#define SQLITE_DEFAULT_WORKER_THREADS   0

Definition at line 8872 of file sqlite3.c.

#define SQLITE_DeferFKs   0x01000000 /* Defer all FK constraints */

Definition at line 11142 of file sqlite3.c.

#define SQLITE_DELETE   9 /* Table Name NULL */

Definition at line 2851 of file sqlite3.c.

#define SQLITE_DENY   1 /* Abort the SQL statement with an error */

Definition at line 2820 of file sqlite3.c.

#define SQLITE_DEPRECATED

Definition at line 281 of file sqlite3.c.

#define SQLITE_DETACH   25 /* Database Name NULL */

Definition at line 2867 of file sqlite3.c.

#define SQLITE_DETERMINISTIC   0x800

Definition at line 4478 of file sqlite3.c.

#define SQLITE_DistinctOpt   0x0020 /* DISTINCT using indexes */

Definition at line 11158 of file sqlite3.c.

#define SQLITE_DONE   101 /* sqlite3_step() has finished executing */

Definition at line 642 of file sqlite3.c.

#define SQLITE_DROP_INDEX   10 /* Index Name Table Name */

Definition at line 2852 of file sqlite3.c.

#define SQLITE_DROP_TABLE   11 /* Table Name NULL */

Definition at line 2853 of file sqlite3.c.

#define SQLITE_DROP_TEMP_INDEX   12 /* Index Name Table Name */

Definition at line 2854 of file sqlite3.c.

#define SQLITE_DROP_TEMP_TABLE   13 /* Table Name NULL */

Definition at line 2855 of file sqlite3.c.

#define SQLITE_DROP_TEMP_TRIGGER   14 /* Trigger Name Table Name */

Definition at line 2856 of file sqlite3.c.

#define SQLITE_DROP_TEMP_VIEW   15 /* View Name NULL */

Definition at line 2857 of file sqlite3.c.

#define SQLITE_DROP_TRIGGER   16 /* Trigger Name Table Name */

Definition at line 2858 of file sqlite3.c.

#define SQLITE_DROP_VIEW   17 /* View Name NULL */

Definition at line 2859 of file sqlite3.c.

#define SQLITE_DROP_VTABLE   30 /* Table Name Module Name */

Definition at line 2872 of file sqlite3.c.

#define SQLITE_DYNAMIC   ((sqlite3_destructor_type)sqlite3MallocSize)

Definition at line 9213 of file sqlite3.c.

#define SQLITE_ECEL_DUP   0x01 /* Deep, not shallow copies */

Definition at line 13236 of file sqlite3.c.

#define SQLITE_ECEL_FACTOR   0x02 /* Factor out constant terms */

Definition at line 13237 of file sqlite3.c.

#define SQLITE_EMPTY   16 /* Database is empty */

Definition at line 628 of file sqlite3.c.

#define SQLITE_ENABLE_LOCKING_STYLE   0

Definition at line 25329 of file sqlite3.c.

#define SQLITE_EnableTrigger   0x00800000 /* True to enable triggers */

Definition at line 11141 of file sqlite3.c.

#define SQLITE_ERROR   1 /* SQL error or missing database */

Definition at line 613 of file sqlite3.c.

#define SQLITE_EXPERIMENTAL

Definition at line 282 of file sqlite3.c.

#define SQLITE_EXTENSION_INIT1   /*no-op*/

Definition at line 102376 of file sqlite3.c.

#define SQLITE_EXTENSION_INIT2 (   v)    (void)v; /* unused parameter */

Definition at line 102377 of file sqlite3.c.

#define SQLITE_EXTENSION_INIT3   /*no-op*/

Definition at line 102378 of file sqlite3.c.

#define SQLITE_EXTERN   extern

Definition at line 256 of file sqlite3.c.

#define SQLITE_FactorOutConst   0x0008 /* Constant factoring */

Definition at line 11156 of file sqlite3.c.

#define SQLITE_FAIL   3

Definition at line 7803 of file sqlite3.c.

#define SQLITE_FAULTINJECTOR_COUNT   1

Definition at line 13652 of file sqlite3.c.

#define SQLITE_FAULTINJECTOR_MALLOC   0

Definition at line 13651 of file sqlite3.c.

#define SQLITE_FCNTL_BUSYHANDLER   15

Definition at line 1189 of file sqlite3.c.

#define SQLITE_FCNTL_CHUNK_SIZE   6

Definition at line 1180 of file sqlite3.c.

#define SQLITE_FCNTL_COMMIT_PHASETWO   22

Definition at line 1195 of file sqlite3.c.

#define SQLITE_FCNTL_DB_UNCHANGED   0xca093fa0

Definition at line 10714 of file sqlite3.c.

#define SQLITE_FCNTL_FILE_POINTER   7

Definition at line 1181 of file sqlite3.c.

#define SQLITE_FCNTL_GET_LOCKPROXYFILE   2

Definition at line 1176 of file sqlite3.c.

#define SQLITE_FCNTL_HAS_MOVED   20

Definition at line 1193 of file sqlite3.c.

#define SQLITE_FCNTL_LAST_ERRNO   4

Definition at line 1178 of file sqlite3.c.

#define SQLITE_FCNTL_LOCKSTATE   1

Definition at line 1175 of file sqlite3.c.

#define SQLITE_FCNTL_MMAP_SIZE   18

Definition at line 1191 of file sqlite3.c.

#define SQLITE_FCNTL_OVERWRITE   11

Definition at line 1185 of file sqlite3.c.

#define SQLITE_FCNTL_PERSIST_WAL   10

Definition at line 1184 of file sqlite3.c.

#define SQLITE_FCNTL_POWERSAFE_OVERWRITE   13

Definition at line 1187 of file sqlite3.c.

#define SQLITE_FCNTL_PRAGMA   14

Definition at line 1188 of file sqlite3.c.

#define SQLITE_FCNTL_SET_LOCKPROXYFILE   3

Definition at line 1177 of file sqlite3.c.

#define SQLITE_FCNTL_SIZE_HINT   5

Definition at line 1179 of file sqlite3.c.

#define SQLITE_FCNTL_SYNC   21

Definition at line 1194 of file sqlite3.c.

#define SQLITE_FCNTL_SYNC_OMITTED   8

Definition at line 1182 of file sqlite3.c.

#define SQLITE_FCNTL_TEMPFILENAME   16

Definition at line 1190 of file sqlite3.c.

#define SQLITE_FCNTL_TRACE   19

Definition at line 1192 of file sqlite3.c.

#define SQLITE_FCNTL_VFSNAME   12

Definition at line 1186 of file sqlite3.c.

#define SQLITE_FCNTL_WAL_BLOCK   24

Definition at line 1197 of file sqlite3.c.

#define SQLITE_FCNTL_WIN32_AV_RETRY   9

Definition at line 1183 of file sqlite3.c.

#define SQLITE_FCNTL_WIN32_SET_HANDLE   23

Definition at line 1196 of file sqlite3.c.

#define SQLITE_FILE_HEADER   "SQLite format 3"

Definition at line 52360 of file sqlite3.c.

#define SQLITE_FLOAT   2

Definition at line 4088 of file sqlite3.c.

#define SQLITE_ForeignKeys   0x00080000 /* Enforce foreign key constraints */

Definition at line 11137 of file sqlite3.c.

#define SQLITE_FORMAT   24 /* Auxiliary database format error */

Definition at line 636 of file sqlite3.c.

#define SQLITE_FREE (   x)    free(x)

Definition at line 17084 of file sqlite3.c.

#define SQLITE_FSFLAGS_IS_MSDOS   0x1

Definition at line 25381 of file sqlite3.c.

#define SQLITE_FULL   13 /* Insertion failed because database is full */

Definition at line 625 of file sqlite3.c.

#define SQLITE_FullColNames   0x00000020 /* Show full column names on SELECT */

Definition at line 11120 of file sqlite3.c.

#define SQLITE_FullFSync   0x00000004 /* Use full fsync on the backend */

Definition at line 11117 of file sqlite3.c.

#define SQLITE_FUNC_CASE   0x008 /* Case-sensitive LIKE-type function */

Definition at line 11242 of file sqlite3.c.

#define SQLITE_FUNC_COALESCE   0x200 /* Built-in coalesce() or ifnull() */

Definition at line 11248 of file sqlite3.c.

#define SQLITE_FUNC_CONSTANT   0x800 /* Constant inputs give a constant output */

Definition at line 11250 of file sqlite3.c.

#define SQLITE_FUNC_COUNT   0x100 /* Built-in count(*) aggregate */

Definition at line 11247 of file sqlite3.c.

#define SQLITE_FUNC_ENCMASK   0x003 /* SQLITE_UTF8, SQLITE_UTF16BE or UTF16LE */

Definition at line 11240 of file sqlite3.c.

#define SQLITE_FUNC_EPHEM   0x010 /* Ephemeral. Delete with VDBE */

Definition at line 11243 of file sqlite3.c.

#define SQLITE_FUNC_LENGTH   0x040 /* Built-in length() function */

Definition at line 11245 of file sqlite3.c.

#define SQLITE_FUNC_LIKE   0x004 /* Candidate for the LIKE optimization */

Definition at line 11241 of file sqlite3.c.

#define SQLITE_FUNC_MINMAX   0x1000 /* True for min() and max() aggregates */

Definition at line 11251 of file sqlite3.c.

#define SQLITE_FUNC_NEEDCOLL   0x020 /* sqlite3GetFuncCollSeq() might be called */

Definition at line 11244 of file sqlite3.c.

#define SQLITE_FUNC_TYPEOF   0x080 /* Built-in typeof() function */

Definition at line 11246 of file sqlite3.c.

#define SQLITE_FUNC_UNLIKELY   0x400 /* Built-in unlikely() function */

Definition at line 11249 of file sqlite3.c.

#define SQLITE_FUNCTION   31 /* NULL Function Name */

Definition at line 2873 of file sqlite3.c.

#define SQLITE_GET_LOCKPROXYFILE   SQLITE_FCNTL_GET_LOCKPROXYFILE

Definition at line 1200 of file sqlite3.c.

#define SQLITE_GroupByOrder   0x0004 /* GROUPBY cover of ORDERBY */

Definition at line 11155 of file sqlite3.c.

#define SQLITE_IDXTYPE_APPDEF   0 /* Created using CREATE INDEX */

Definition at line 11766 of file sqlite3.c.

#define SQLITE_IDXTYPE_PRIMARYKEY   2 /* Is the PRIMARY KEY for the table */

Definition at line 11768 of file sqlite3.c.

#define SQLITE_IDXTYPE_UNIQUE   1 /* Implements a UNIQUE constraint */

Definition at line 11767 of file sqlite3.c.

#define SQLITE_IGNORE   2 /* Don't allow access, but don't generate an error */

Definition at line 2821 of file sqlite3.c.

#define SQLITE_IgnoreChecks   0x00002000 /* Do not enforce check constraints */

Definition at line 11131 of file sqlite3.c.

#define SQLITE_INDEX_CONSTRAINT_EQ   2

Definition at line 5829 of file sqlite3.c.

#define SQLITE_INDEX_CONSTRAINT_GE   32

Definition at line 5833 of file sqlite3.c.

#define SQLITE_INDEX_CONSTRAINT_GT   4

Definition at line 5830 of file sqlite3.c.

#define SQLITE_INDEX_CONSTRAINT_LE   8

Definition at line 5831 of file sqlite3.c.

#define SQLITE_INDEX_CONSTRAINT_LT   16

Definition at line 5832 of file sqlite3.c.

#define SQLITE_INDEX_CONSTRAINT_MATCH   64

Definition at line 5834 of file sqlite3.c.

#define SQLITE_INSERT   18 /* Table Name NULL */

Definition at line 2860 of file sqlite3.c.

#define SQLITE_INT_TO_PTR (   X)    ((void*)&((char*)0)[X])

Definition at line 8306 of file sqlite3.c.

#define SQLITE_INTEGER   1

Definition at line 4087 of file sqlite3.c.

#define SQLITE_INTEGRITY_CHECK_ERROR_MAX   100
#define SQLITE_INTERNAL   2 /* Internal logic error in SQLite */

Definition at line 614 of file sqlite3.c.

#define SQLITE_InternChanges   0x00000002 /* Uncommitted Hash table changes */

Definition at line 11116 of file sqlite3.c.

#define SQLITE_INTERRUPT   9 /* Operation terminated by sqlite3_interrupt()*/

Definition at line 621 of file sqlite3.c.

#define SQLITE_IOCAP_ATOMIC   0x00000001

Definition at line 773 of file sqlite3.c.

#define SQLITE_IOCAP_ATOMIC16K   0x00000040

Definition at line 779 of file sqlite3.c.

#define SQLITE_IOCAP_ATOMIC1K   0x00000004

Definition at line 775 of file sqlite3.c.

#define SQLITE_IOCAP_ATOMIC2K   0x00000008

Definition at line 776 of file sqlite3.c.

#define SQLITE_IOCAP_ATOMIC32K   0x00000080

Definition at line 780 of file sqlite3.c.

#define SQLITE_IOCAP_ATOMIC4K   0x00000010

Definition at line 777 of file sqlite3.c.

#define SQLITE_IOCAP_ATOMIC512   0x00000002

Definition at line 774 of file sqlite3.c.

#define SQLITE_IOCAP_ATOMIC64K   0x00000100

Definition at line 781 of file sqlite3.c.

#define SQLITE_IOCAP_ATOMIC8K   0x00000020

Definition at line 778 of file sqlite3.c.

#define SQLITE_IOCAP_IMMUTABLE   0x00002000

Definition at line 786 of file sqlite3.c.

#define SQLITE_IOCAP_POWERSAFE_OVERWRITE   0x00001000

Definition at line 785 of file sqlite3.c.

#define SQLITE_IOCAP_SAFE_APPEND   0x00000200

Definition at line 782 of file sqlite3.c.

#define SQLITE_IOCAP_SEQUENTIAL   0x00000400

Definition at line 783 of file sqlite3.c.

#define SQLITE_IOCAP_UNDELETABLE_WHEN_OPEN   0x00000800

Definition at line 784 of file sqlite3.c.

#define SQLITE_IOERR   10 /* Some kind of disk I/O error occurred */

Definition at line 622 of file sqlite3.c.

#define SQLITE_IOERR_ACCESS   (SQLITE_IOERR | (13<<8))

Definition at line 673 of file sqlite3.c.

#define SQLITE_IOERR_BLOCKED   (SQLITE_IOERR | (11<<8))

Definition at line 671 of file sqlite3.c.

#define SQLITE_IOERR_CHECKRESERVEDLOCK   (SQLITE_IOERR | (14<<8))

Definition at line 674 of file sqlite3.c.

#define SQLITE_IOERR_CLOSE   (SQLITE_IOERR | (16<<8))

Definition at line 676 of file sqlite3.c.

#define SQLITE_IOERR_CONVPATH   (SQLITE_IOERR | (26<<8))

Definition at line 686 of file sqlite3.c.

#define SQLITE_IOERR_DELETE   (SQLITE_IOERR | (10<<8))

Definition at line 670 of file sqlite3.c.

#define SQLITE_IOERR_DELETE_NOENT   (SQLITE_IOERR | (23<<8))

Definition at line 683 of file sqlite3.c.

#define SQLITE_IOERR_DIR_CLOSE   (SQLITE_IOERR | (17<<8))

Definition at line 677 of file sqlite3.c.

#define SQLITE_IOERR_DIR_FSYNC   (SQLITE_IOERR | (5<<8))

Definition at line 665 of file sqlite3.c.

#define SQLITE_IOERR_FSTAT   (SQLITE_IOERR | (7<<8))

Definition at line 667 of file sqlite3.c.

#define SQLITE_IOERR_FSYNC   (SQLITE_IOERR | (4<<8))

Definition at line 664 of file sqlite3.c.

#define SQLITE_IOERR_GETTEMPPATH   (SQLITE_IOERR | (25<<8))

Definition at line 685 of file sqlite3.c.

#define SQLITE_IOERR_LOCK   (SQLITE_IOERR | (15<<8))

Definition at line 675 of file sqlite3.c.

#define SQLITE_IOERR_MMAP   (SQLITE_IOERR | (24<<8))

Definition at line 684 of file sqlite3.c.

#define SQLITE_IOERR_NOMEM   (SQLITE_IOERR | (12<<8))

Definition at line 672 of file sqlite3.c.

#define SQLITE_IOERR_RDLOCK   (SQLITE_IOERR | (9<<8))

Definition at line 669 of file sqlite3.c.

#define SQLITE_IOERR_READ   (SQLITE_IOERR | (1<<8))

Definition at line 661 of file sqlite3.c.

#define SQLITE_IOERR_SEEK   (SQLITE_IOERR | (22<<8))

Definition at line 682 of file sqlite3.c.

#define SQLITE_IOERR_SHMLOCK   (SQLITE_IOERR | (20<<8))

Definition at line 680 of file sqlite3.c.

#define SQLITE_IOERR_SHMMAP   (SQLITE_IOERR | (21<<8))

Definition at line 681 of file sqlite3.c.

#define SQLITE_IOERR_SHMOPEN   (SQLITE_IOERR | (18<<8))

Definition at line 678 of file sqlite3.c.

#define SQLITE_IOERR_SHMSIZE   (SQLITE_IOERR | (19<<8))

Definition at line 679 of file sqlite3.c.

#define SQLITE_IOERR_SHORT_READ   (SQLITE_IOERR | (2<<8))

Definition at line 662 of file sqlite3.c.

#define SQLITE_IOERR_TRUNCATE   (SQLITE_IOERR | (6<<8))

Definition at line 666 of file sqlite3.c.

#define SQLITE_IOERR_UNLOCK   (SQLITE_IOERR | (8<<8))

Definition at line 668 of file sqlite3.c.

#define SQLITE_IOERR_WRITE   (SQLITE_IOERR | (3<<8))

Definition at line 663 of file sqlite3.c.

#define SQLITE_JUMPIFNULL   0x10 /* jumps if either operand is NULL */

Definition at line 11418 of file sqlite3.c.

#define SQLITE_LAST_ERRNO   SQLITE_FCNTL_LAST_ERRNO

Definition at line 1202 of file sqlite3.c.

#define SQLITE_LegacyFileFmt   0x00008000 /* Create new databases in format 1 */

Definition at line 11133 of file sqlite3.c.

#define SQLITE_LIMIT_ATTACHED   7

Definition at line 3409 of file sqlite3.c.

#define SQLITE_LIMIT_COLUMN   2

Definition at line 3404 of file sqlite3.c.

#define SQLITE_LIMIT_COMPOUND_SELECT   4

Definition at line 3406 of file sqlite3.c.

#define SQLITE_LIMIT_EXPR_DEPTH   3

Definition at line 3405 of file sqlite3.c.

#define SQLITE_LIMIT_FUNCTION_ARG   6

Definition at line 3408 of file sqlite3.c.

#define SQLITE_LIMIT_LENGTH   0

Definition at line 3402 of file sqlite3.c.

#define SQLITE_LIMIT_LIKE_PATTERN_LENGTH   8

Definition at line 3410 of file sqlite3.c.

#define SQLITE_LIMIT_SQL_LENGTH   1

Definition at line 3403 of file sqlite3.c.

#define SQLITE_LIMIT_TRIGGER_DEPTH   10

Definition at line 3412 of file sqlite3.c.

#define SQLITE_LIMIT_VARIABLE_NUMBER   9

Definition at line 3411 of file sqlite3.c.

#define SQLITE_LIMIT_VDBE_OP   5

Definition at line 3407 of file sqlite3.c.

#define SQLITE_LIMIT_WORKER_THREADS   11

Definition at line 3413 of file sqlite3.c.

#define SQLITE_LITTLEENDIAN   (*(char *)(&sqlite3one)==1)

Definition at line 9054 of file sqlite3.c.

#define SQLITE_LoadExtension   0x00400000 /* Enable load_extension */

Definition at line 11140 of file sqlite3.c.

#define SQLITE_LOCK_EXCLUSIVE   4

Definition at line 799 of file sqlite3.c.

#define SQLITE_LOCK_NONE   0

Definition at line 795 of file sqlite3.c.

#define SQLITE_LOCK_PENDING   3

Definition at line 798 of file sqlite3.c.

#define SQLITE_LOCK_RESERVED   2

Definition at line 797 of file sqlite3.c.

#define SQLITE_LOCK_SHARED   1

Definition at line 796 of file sqlite3.c.

#define SQLITE_LOCKED   6 /* A table in the database is locked */

Definition at line 618 of file sqlite3.c.

#define SQLITE_LOCKED_SHAREDCACHE   (SQLITE_LOCKED | (1<<8))

Definition at line 687 of file sqlite3.c.

#define SQLITE_MAGIC_BUSY   0xf03b7906 /* Database currently in use */

Definition at line 11192 of file sqlite3.c.

#define SQLITE_MAGIC_CLOSED   0x9f3c2d33 /* Database is closed */

Definition at line 11190 of file sqlite3.c.

#define SQLITE_MAGIC_ERROR   0xb5357930 /* An SQLITE_MISUSE error occurred */

Definition at line 11193 of file sqlite3.c.

#define SQLITE_MAGIC_OPEN   0xa029a697 /* Database is open */

Definition at line 11189 of file sqlite3.c.

#define SQLITE_MAGIC_SICK   0x4b771290 /* Error and awaiting close */

Definition at line 11191 of file sqlite3.c.

#define SQLITE_MAGIC_ZOMBIE   0x64cffc7f /* Close with last statement close */

Definition at line 11194 of file sqlite3.c.

#define SQLITE_MALLOC (   x)    malloc(x)

Definition at line 17083 of file sqlite3.c.

#define SQLITE_MALLOC_SOFT_LIMIT   1024

Definition at line 8402 of file sqlite3.c.

#define SQLITE_MAX_ATTACHED   10

Definition at line 8179 of file sqlite3.c.

#define SQLITE_MAX_COLUMN   2000

Definition at line 8097 of file sqlite3.c.

#define SQLITE_MAX_COMPOUND_SELECT   500

Definition at line 8134 of file sqlite3.c.

#define SQLITE_MAX_DEFAULT_PAGE_SIZE   8192

Definition at line 8226 of file sqlite3.c.

#define SQLITE_MAX_EXPR_DEPTH   1000

Definition at line 8122 of file sqlite3.c.

#define SQLITE_MAX_FILE_FORMAT   4

Definition at line 8837 of file sqlite3.c.

#define SQLITE_MAX_FUNCTION_ARG   127

Definition at line 8149 of file sqlite3.c.

#define SQLITE_MAX_LENGTH   1000000000

Definition at line 8076 of file sqlite3.c.

#define SQLITE_MAX_LIKE_PATTERN_LENGTH   50000

Definition at line 8250 of file sqlite3.c.

#define SQLITE_MAX_MMAP_SIZE   0

Definition at line 9117 of file sqlite3.c.

#define SQLITE_MAX_MMAP_SIZE_xc   1 /* exclude from ctime.c */

Definition at line 9119 of file sqlite3.c.

#define SQLITE_MAX_PAGE_COUNT   1073741823

Definition at line 8242 of file sqlite3.c.

#define SQLITE_MAX_PAGE_SIZE   65536

Definition at line 8204 of file sqlite3.c.

#define SQLITE_MAX_PMASZ   (1<<29)

Definition at line 78084 of file sqlite3.c.

#define SQLITE_MAX_SCHEMA_RETRY   50

Definition at line 14525 of file sqlite3.c.

#define SQLITE_MAX_SQL_LENGTH   1000000000

Definition at line 8108 of file sqlite3.c.

#define SQLITE_MAX_TRIGGER_DEPTH   1000

Definition at line 8261 of file sqlite3.c.

#define SQLITE_MAX_U32   ((((u64)1)<<32)-1)

Definition at line 8968 of file sqlite3.c.

#define SQLITE_MAX_VARIABLE_NUMBER   999

Definition at line 8187 of file sqlite3.c.

#define SQLITE_MAX_VDBE_OP   25000

Definition at line 8142 of file sqlite3.c.

#define SQLITE_MAX_WORKER_THREADS   8

Definition at line 8869 of file sqlite3.c.

#define SQLITE_MINIMUM_FILE_DESCRIPTOR   3

Definition at line 26027 of file sqlite3.c.

#define SQLITE_MISMATCH   20 /* Data type mismatch */

Definition at line 632 of file sqlite3.c.

#define SQLITE_MISUSE   21 /* Library used incorrectly */

Definition at line 633 of file sqlite3.c.

#define SQLITE_MISUSE_BKPT   sqlite3MisuseError(__LINE__)

Definition at line 12931 of file sqlite3.c.

#define SQLITE_MUTEX_FAST   0

Definition at line 6466 of file sqlite3.c.

#define SQLITE_MUTEX_NREF   0

Definition at line 19511 of file sqlite3.c.

#define SQLITE_MUTEX_PTHREADS

Definition at line 10799 of file sqlite3.c.

#define SQLITE_MUTEX_RECURSIVE   1

Definition at line 6467 of file sqlite3.c.

#define SQLITE_MUTEX_STATIC_APP1   8 /* For use by application */

Definition at line 6476 of file sqlite3.c.

#define SQLITE_MUTEX_STATIC_APP2   9 /* For use by application */

Definition at line 6477 of file sqlite3.c.

#define SQLITE_MUTEX_STATIC_APP3   10 /* For use by application */

Definition at line 6478 of file sqlite3.c.

#define SQLITE_MUTEX_STATIC_LRU   6 /* lru page list */

Definition at line 6473 of file sqlite3.c.

#define SQLITE_MUTEX_STATIC_LRU2   7 /* NOT USED */

Definition at line 6474 of file sqlite3.c.

#define SQLITE_MUTEX_STATIC_MASTER   2

Definition at line 6468 of file sqlite3.c.

#define SQLITE_MUTEX_STATIC_MEM   3 /* sqlite3_malloc() */

Definition at line 6469 of file sqlite3.c.

#define SQLITE_MUTEX_STATIC_MEM2   4 /* NOT USED */

Definition at line 6470 of file sqlite3.c.

#define SQLITE_MUTEX_STATIC_OPEN   4 /* sqlite3BtreeOpen() */

Definition at line 6471 of file sqlite3.c.

#define SQLITE_MUTEX_STATIC_PMEM   7 /* sqlite3PageMalloc() */

Definition at line 6475 of file sqlite3.c.

#define SQLITE_MUTEX_STATIC_PRNG   5 /* sqlite3_random() */

Definition at line 6472 of file sqlite3.c.

#define SQLITE_N_BTREE_META   16

Definition at line 9338 of file sqlite3.c.

#define SQLITE_N_COLCACHE   10

Definition at line 12435 of file sqlite3.c.

#define SQLITE_N_KEYWORD   124

Definition at line 127153 of file sqlite3.c.

#define SQLITE_N_LIMIT   (SQLITE_LIMIT_WORKER_THREADS+1)

Definition at line 10902 of file sqlite3.c.

#define SQLITE_NOINLINE

Definition at line 8325 of file sqlite3.c.

#define SQLITE_NOLFS   22 /* Uses OS features not supported on host */

Definition at line 634 of file sqlite3.c.

#define SQLITE_NOMEM   7 /* A malloc() failed */

Definition at line 619 of file sqlite3.c.

#define SQLITE_NOTADB   26 /* File opened that is not a database file */

Definition at line 638 of file sqlite3.c.

#define SQLITE_NOTFOUND   12 /* Unknown opcode in sqlite3_file_control() */

Definition at line 624 of file sqlite3.c.

#define SQLITE_NOTICE   27 /* Notifications from sqlite3_log() */

Definition at line 639 of file sqlite3.c.

#define SQLITE_NOTICE_RECOVER_ROLLBACK   (SQLITE_NOTICE | (2<<8))

Definition at line 711 of file sqlite3.c.

#define SQLITE_NOTICE_RECOVER_WAL   (SQLITE_NOTICE | (1<<8))

Definition at line 710 of file sqlite3.c.

#define SQLITE_NOTNULL   0x90 /* Assert that operands are never NULL */

Definition at line 11421 of file sqlite3.c.

#define SQLITE_NULL   5

Definition at line 4090 of file sqlite3.c.

#define SQLITE_NullCallback   0x00000100 /* Invoke the callback once if the */

Definition at line 11125 of file sqlite3.c.

#define SQLITE_NULLEQ   0x80 /* NULL=NULL */

Definition at line 11420 of file sqlite3.c.

#define SQLITE_OK   0 /* Successful result */

Definition at line 611 of file sqlite3.c.

#define SQLITE_OmitNoopJoin   0x0400 /* Omit unused tables in joins */

Definition at line 11163 of file sqlite3.c.

#define SQLITE_OPEN_AUTOPROXY   0x00000020 /* VFS only */

Definition at line 727 of file sqlite3.c.

#define SQLITE_OPEN_CREATE   0x00000004 /* Ok for sqlite3_open_v2() */

Definition at line 724 of file sqlite3.c.

#define SQLITE_OPEN_DELETEONCLOSE   0x00000008 /* VFS only */

Definition at line 725 of file sqlite3.c.

#define SQLITE_OPEN_EXCLUSIVE   0x00000010 /* VFS only */

Definition at line 726 of file sqlite3.c.

#define SQLITE_OPEN_FULLMUTEX   0x00010000 /* Ok for sqlite3_open_v2() */

Definition at line 738 of file sqlite3.c.

#define SQLITE_OPEN_MAIN_DB   0x00000100 /* VFS only */

Definition at line 730 of file sqlite3.c.

#define SQLITE_OPEN_MAIN_JOURNAL   0x00000800 /* VFS only */

Definition at line 733 of file sqlite3.c.

#define SQLITE_OPEN_MASTER_JOURNAL   0x00004000 /* VFS only */

Definition at line 736 of file sqlite3.c.

#define SQLITE_OPEN_MEMORY   0x00000080 /* Ok for sqlite3_open_v2() */

Definition at line 729 of file sqlite3.c.

#define SQLITE_OPEN_NOMUTEX   0x00008000 /* Ok for sqlite3_open_v2() */

Definition at line 737 of file sqlite3.c.

#define SQLITE_OPEN_PRIVATECACHE   0x00040000 /* Ok for sqlite3_open_v2() */

Definition at line 740 of file sqlite3.c.

#define SQLITE_OPEN_READONLY   0x00000001 /* Ok for sqlite3_open_v2() */

Definition at line 722 of file sqlite3.c.

#define SQLITE_OPEN_READWRITE   0x00000002 /* Ok for sqlite3_open_v2() */

Definition at line 723 of file sqlite3.c.

#define SQLITE_OPEN_SHAREDCACHE   0x00020000 /* Ok for sqlite3_open_v2() */

Definition at line 739 of file sqlite3.c.

#define SQLITE_OPEN_SUBJOURNAL   0x00002000 /* VFS only */

Definition at line 735 of file sqlite3.c.

#define SQLITE_OPEN_TEMP_DB   0x00000200 /* VFS only */

Definition at line 731 of file sqlite3.c.

#define SQLITE_OPEN_TEMP_JOURNAL   0x00001000 /* VFS only */

Definition at line 734 of file sqlite3.c.

#define SQLITE_OPEN_TRANSIENT_DB   0x00000400 /* VFS only */

Definition at line 732 of file sqlite3.c.

#define SQLITE_OPEN_URI   0x00000040 /* Ok for sqlite3_open_v2() */

Definition at line 728 of file sqlite3.c.

#define SQLITE_OPEN_WAL   0x00080000 /* VFS only */

Definition at line 741 of file sqlite3.c.

#define SQLITE_OrderByIdxJoin   0x0080 /* ORDER BY of joins via index */

Definition at line 11160 of file sqlite3.c.

#define SQLITE_OS_OTHER   0

Definition at line 10545 of file sqlite3.c.

#define SQLITE_OS_UNIX   1

Definition at line 10553 of file sqlite3.c.

#define SQLITE_OS_WIN   0

Definition at line 10552 of file sqlite3.c.

#define SQLITE_PERM   3 /* Access permission denied */

Definition at line 615 of file sqlite3.c.

#define SQLITE_POWERSAFE_OVERWRITE   1

Definition at line 8352 of file sqlite3.c.

#define SQLITE_PRAGMA   19 /* Pragma Name 1st arg or NULL */

Definition at line 2861 of file sqlite3.c.

#define SQLITE_PreferBuiltin   0x00200000 /* Preference to built-in funcs */

Definition at line 11139 of file sqlite3.c.

#define SQLITE_PRINT_BUF_SIZE   70

Definition at line 21517 of file sqlite3.c.

#define SQLITE_PRINTF_INTERNAL   0x01

Definition at line 13065 of file sqlite3.c.

#define SQLITE_PRINTF_SQLFUNC   0x02

Definition at line 13066 of file sqlite3.c.

#define SQLITE_PRIVATE   static

Definition at line 23 of file sqlite3.c.

#define SQLITE_PROTOCOL   15 /* Database lock protocol error */

Definition at line 627 of file sqlite3.c.

#define SQLITE_PTR_TO_INT (   X)    ((int)(((char*)X)-(char*)0))

Definition at line 8307 of file sqlite3.c.

#define SQLITE_PTRSIZE   8

Definition at line 9017 of file sqlite3.c.

#define SQLITE_QueryFlattener   0x0001 /* Query flattening */

Definition at line 11153 of file sqlite3.c.

#define SQLITE_QueryOnly   0x02000000 /* Disable database changes */

Definition at line 11143 of file sqlite3.c.

#define SQLITE_RANGE   25 /* 2nd parameter to sqlite3_bind out of range */

Definition at line 637 of file sqlite3.c.

#define SQLITE_READ   20 /* Table Name Column Name */

Definition at line 2862 of file sqlite3.c.

#define SQLITE_READONLY   8 /* Attempt to write a readonly database */

Definition at line 620 of file sqlite3.c.

#define SQLITE_READONLY_CANTLOCK   (SQLITE_READONLY | (2<<8))

Definition at line 696 of file sqlite3.c.

#define SQLITE_READONLY_DBMOVED   (SQLITE_READONLY | (4<<8))

Definition at line 698 of file sqlite3.c.

#define SQLITE_READONLY_RECOVERY   (SQLITE_READONLY | (1<<8))

Definition at line 695 of file sqlite3.c.

#define SQLITE_READONLY_ROLLBACK   (SQLITE_READONLY | (3<<8))

Definition at line 697 of file sqlite3.c.

#define SQLITE_ReadUncommitted   0x0004000 /* For shared-cache mode */

Definition at line 11132 of file sqlite3.c.

#define SQLITE_REALLOC (   x,
 
)    realloc((x),(y))

Definition at line 17085 of file sqlite3.c.

#define SQLITE_RecoveryMode   0x00010000 /* Ignore schema errors */

Definition at line 11134 of file sqlite3.c.

#define SQLITE_RecTriggers   0x00040000 /* Enable recursive triggers */

Definition at line 11136 of file sqlite3.c.

#define SQLITE_RECURSIVE   33 /* NULL NULL */

Definition at line 2876 of file sqlite3.c.

#define SQLITE_REINDEX   27 /* Index Name NULL */

Definition at line 2869 of file sqlite3.c.

#define SQLITE_REPLACE   5

Definition at line 7805 of file sqlite3.c.

#define SQLITE_ReverseOrder   0x00020000 /* Reverse unordered SELECTs */

Definition at line 11135 of file sqlite3.c.

#define SQLITE_ROLLBACK   1

Definition at line 7801 of file sqlite3.c.

#define SQLITE_ROW   100 /* sqlite3_step() has another row ready */

Definition at line 641 of file sqlite3.c.

#define SQLITE_SAVEPOINT   32 /* Operation Savepoint Name */

Definition at line 2874 of file sqlite3.c.

#define SQLITE_SCANSTAT_EST   2

Definition at line 7856 of file sqlite3.c.

#define SQLITE_SCANSTAT_EXPLAIN   4

Definition at line 7858 of file sqlite3.c.

#define SQLITE_SCANSTAT_NAME   3

Definition at line 7857 of file sqlite3.c.

#define SQLITE_SCANSTAT_NLOOP   0

Definition at line 7854 of file sqlite3.c.

#define SQLITE_SCANSTAT_NVISIT   1

Definition at line 7855 of file sqlite3.c.

#define SQLITE_SCANSTAT_SELECTID   5

Definition at line 7859 of file sqlite3.c.

#define SQLITE_SCHEMA   17 /* The database schema changed */

Definition at line 629 of file sqlite3.c.

#define SQLITE_SELECT   21 /* NULL NULL */

Definition at line 2863 of file sqlite3.c.

#define SQLITE_SET_LOCKPROXYFILE   SQLITE_FCNTL_SET_LOCKPROXYFILE

Definition at line 1201 of file sqlite3.c.

#define SQLITE_SHM_EXCLUSIVE   8

Definition at line 1464 of file sqlite3.c.

#define SQLITE_SHM_LOCK   2

Definition at line 1462 of file sqlite3.c.

#define SQLITE_SHM_NLOCK   8

Definition at line 1474 of file sqlite3.c.

#define SQLITE_SHM_SHARED   4

Definition at line 1463 of file sqlite3.c.

#define SQLITE_SHM_UNLOCK   1

Definition at line 1461 of file sqlite3.c.

#define SQLITE_ShortColNames   0x00000040 /* Show short columns names */

Definition at line 11121 of file sqlite3.c.

#define SQLITE_SKIP_UTF8 (   zIn)
Value:
{ \
if( (*(zIn++))>=0xc0 ){ \
while( (*zIn & 0xc0)==0x80 ){ zIn++; } \
} \
}

Definition at line 12914 of file sqlite3.c.

#define SQLITE_SO_ASC   0 /* Sort in ascending order */

Definition at line 11378 of file sqlite3.c.

#define SQLITE_SO_DESC   1 /* Sort in ascending order */

Definition at line 11379 of file sqlite3.c.

#define SQLITE_SORTER_PMASZ   250

Definition at line 13948 of file sqlite3.c.

#define SQLITE_SOURCE_ID   "2015-04-23 13:37:05 b5e43602833249aa4b73337bf85b7f308450dab6"

Definition at line 323 of file sqlite3.c.

#define SQLITE_SqlTrace   0x00000200 /* Debug print SQL as it executes */

Definition at line 11127 of file sqlite3.c.

#define SQLITE_Stat34   0x0800 /* Use STAT3 or STAT4 data */

Definition at line 11164 of file sqlite3.c.

#define SQLITE_STAT4_SAMPLES   1

Definition at line 88223 of file sqlite3.c.

#define SQLITE_STATIC   ((sqlite3_destructor_type)0)

Definition at line 4701 of file sqlite3.c.

#define SQLITE_STATUS_MALLOC_COUNT   9

Definition at line 6707 of file sqlite3.c.

#define SQLITE_STATUS_MALLOC_SIZE   5

Definition at line 6703 of file sqlite3.c.

#define SQLITE_STATUS_MEMORY_USED   0

Definition at line 6698 of file sqlite3.c.

#define SQLITE_STATUS_PAGECACHE_OVERFLOW   2

Definition at line 6700 of file sqlite3.c.

#define SQLITE_STATUS_PAGECACHE_SIZE   7

Definition at line 6705 of file sqlite3.c.

#define SQLITE_STATUS_PAGECACHE_USED   1

Definition at line 6699 of file sqlite3.c.

#define SQLITE_STATUS_PARSER_STACK   6

Definition at line 6704 of file sqlite3.c.

#define SQLITE_STATUS_SCRATCH_OVERFLOW   4

Definition at line 6702 of file sqlite3.c.

#define SQLITE_STATUS_SCRATCH_SIZE   8

Definition at line 6706 of file sqlite3.c.

#define SQLITE_STATUS_SCRATCH_USED   3

Definition at line 6701 of file sqlite3.c.

#define SQLITE_STDCALL

Definition at line 265 of file sqlite3.c.

#define SQLITE_STMTSTATUS_AUTOINDEX   3

Definition at line 6903 of file sqlite3.c.

#define SQLITE_STMTSTATUS_FULLSCAN_STEP   1

Definition at line 6901 of file sqlite3.c.

#define SQLITE_STMTSTATUS_SORT   2

Definition at line 6902 of file sqlite3.c.

#define SQLITE_STMTSTATUS_VM_STEP   4

Definition at line 6904 of file sqlite3.c.

#define SQLITE_STOREP2   0x20 /* Store result in reg[P2] rather than jump */

Definition at line 11419 of file sqlite3.c.

#define SQLITE_SubqCoroutine   0x0100 /* Evaluate subqueries as coroutines */

Definition at line 11161 of file sqlite3.c.

#define SQLITE_SYNC_DATAONLY   0x00010

Definition at line 829 of file sqlite3.c.

#define SQLITE_SYNC_FULL   0x00003

Definition at line 828 of file sqlite3.c.

#define SQLITE_SYNC_MASK   0x13 /* Mask off the SQLITE_SYNC_* values */

Definition at line 41572 of file sqlite3.c.

#define SQLITE_SYNC_NORMAL   0x00002

Definition at line 827 of file sqlite3.c.

#define SQLITE_SYSTEM_MALLOC   1

Definition at line 8394 of file sqlite3.c.

#define SQLITE_TEMP_FILE_PREFIX   "etilqs_"

Definition at line 10605 of file sqlite3.c.

#define SQLITE_TEMP_STORE   1

Definition at line 8855 of file sqlite3.c.

#define SQLITE_TEMP_STORE_xc   1 /* Exclude from ctime.c */

Definition at line 8856 of file sqlite3.c.

#define SQLITE_TESTCTRL_ALWAYS   13

Definition at line 6566 of file sqlite3.c.

#define SQLITE_TESTCTRL_ASSERT   12

Definition at line 6565 of file sqlite3.c.

#define SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS   10

Definition at line 6563 of file sqlite3.c.

#define SQLITE_TESTCTRL_BITVEC_TEST   8

Definition at line 6561 of file sqlite3.c.

#define SQLITE_TESTCTRL_BYTEORDER   22

Definition at line 6575 of file sqlite3.c.

#define SQLITE_TESTCTRL_EXPLAIN_STMT   19 /* NOT USED */

Definition at line 6572 of file sqlite3.c.

#define SQLITE_TESTCTRL_FAULT_INSTALL   9

Definition at line 6562 of file sqlite3.c.

#define SQLITE_TESTCTRL_FIRST   5

Definition at line 6557 of file sqlite3.c.

#define SQLITE_TESTCTRL_IMPOSTER   25

Definition at line 6578 of file sqlite3.c.

#define SQLITE_TESTCTRL_ISINIT   23

Definition at line 6576 of file sqlite3.c.

#define SQLITE_TESTCTRL_ISKEYWORD   16

Definition at line 6569 of file sqlite3.c.

#define SQLITE_TESTCTRL_LAST   25

Definition at line 6579 of file sqlite3.c.

#define SQLITE_TESTCTRL_LOCALTIME_FAULT   18

Definition at line 6571 of file sqlite3.c.

#define SQLITE_TESTCTRL_NEVER_CORRUPT   20

Definition at line 6573 of file sqlite3.c.

#define SQLITE_TESTCTRL_OPTIMIZATIONS   15

Definition at line 6568 of file sqlite3.c.

#define SQLITE_TESTCTRL_PENDING_BYTE   11

Definition at line 6564 of file sqlite3.c.

#define SQLITE_TESTCTRL_PRNG_RESET   7

Definition at line 6560 of file sqlite3.c.

#define SQLITE_TESTCTRL_PRNG_RESTORE   6

Definition at line 6559 of file sqlite3.c.

#define SQLITE_TESTCTRL_PRNG_SAVE   5

Definition at line 6558 of file sqlite3.c.

#define SQLITE_TESTCTRL_RESERVE   14

Definition at line 6567 of file sqlite3.c.

#define SQLITE_TESTCTRL_SCRATCHMALLOC   17

Definition at line 6570 of file sqlite3.c.

#define SQLITE_TESTCTRL_SORTER_MMAP   24

Definition at line 6577 of file sqlite3.c.

#define SQLITE_TESTCTRL_VDBE_COVERAGE   21

Definition at line 6574 of file sqlite3.c.

#define SQLITE_TEXT   3

Definition at line 4094 of file sqlite3.c.

#define SQLITE_THREADS_IMPLEMENTED   1 /* Prevent the single-thread code below */

Definition at line 22679 of file sqlite3.c.

#define SQLITE_THREADSAFE   1 /* IMP: R-07272-22309 */

Definition at line 8343 of file sqlite3.c.

#define SQLITE_TOOBIG   18 /* String or BLOB exceeds size limit */

Definition at line 630 of file sqlite3.c.

#define SQLITE_TRANSACTION   22 /* Operation NULL */

Definition at line 2864 of file sqlite3.c.

#define SQLITE_TRANSIENT   ((sqlite3_destructor_type)-1)

Definition at line 4702 of file sqlite3.c.

#define SQLITE_Transitive   0x0200 /* Transitive constraints */

Definition at line 11162 of file sqlite3.c.

#define SQLITE_UNIX_THREADS   1

Definition at line 25389 of file sqlite3.c.

#define SQLITE_UPDATE   23 /* Table Name Column Name */

Definition at line 2865 of file sqlite3.c.

#define SQLITE_USE_URI   0

Definition at line 13933 of file sqlite3.c.

#define SQLITE_UTF16   4 /* Use native byte order */

Definition at line 4466 of file sqlite3.c.

#define SQLITE_UTF16_ALIGNED   8 /* sqlite3_create_collation only */

Definition at line 4468 of file sqlite3.c.

#define SQLITE_UTF16BE   3 /* IMP: R-51971-34154 */

Definition at line 4465 of file sqlite3.c.

#define SQLITE_UTF16LE   2 /* IMP: R-03371-37637 */

Definition at line 4464 of file sqlite3.c.

#define SQLITE_UTF16NATIVE   (SQLITE_BIGENDIAN?SQLITE_UTF16BE:SQLITE_UTF16LE)

Definition at line 9055 of file sqlite3.c.

#define SQLITE_UTF8   1 /* IMP: R-37514-35566 */

Definition at line 4463 of file sqlite3.c.

#define SQLITE_Vacuum   0x08000000 /* Currently in a VACUUM */

Definition at line 11145 of file sqlite3.c.

#define SQLITE_VdbeAddopTrace   0x00001000 /* Trace sqlite3VdbeAddOp() calls */

Definition at line 11130 of file sqlite3.c.

#define SQLITE_VdbeEQP   0x04000000 /* Debug EXPLAIN QUERY PLAN */

Definition at line 11144 of file sqlite3.c.

#define SQLITE_VdbeListing   0x00000400 /* Debug listings of VDBE programs */

Definition at line 11128 of file sqlite3.c.

#define SQLITE_VdbeTrace   0x00000001 /* True to trace VDBE execution */

Definition at line 11115 of file sqlite3.c.

#define SQLITE_VERSION   "3.8.10"

Definition at line 321 of file sqlite3.c.

#define SQLITE_VERSION_NUMBER   3008010

Definition at line 322 of file sqlite3.c.

#define SQLITE_VTAB_CONSTRAINT_SUPPORT   1

Definition at line 7775 of file sqlite3.c.

#define SQLITE_WARNING   28 /* Warnings from sqlite3_log() */

Definition at line 640 of file sqlite3.c.

#define SQLITE_WARNING_AUTOINDEX   (SQLITE_WARNING | (1<<8))

Definition at line 712 of file sqlite3.c.

#define SQLITE_WriteSchema   0x00000800 /* OK to update SQLITE_MASTER */

Definition at line 11129 of file sqlite3.c.

#define SQLITE_WSD

Definition at line 9236 of file sqlite3.c.

#define sqliteHashData (   E)    ((E)->data)

Definition at line 8617 of file sqlite3.c.

#define sqliteHashFirst (   H)    ((H)->first)

Definition at line 8615 of file sqlite3.c.

#define sqliteHashNext (   E)    ((E)->next)

Definition at line 8616 of file sqlite3.c.

#define SRT_Coroutine   13 /* Generate a single row of result */

Definition at line 12399 of file sqlite3.c.

#define SRT_Discard   4 /* Do not save the results anywhere */

Definition at line 12386 of file sqlite3.c.

#define SRT_DistFifo   6 /* Like SRT_Fifo, but unique results only */

Definition at line 12388 of file sqlite3.c.

#define SRT_DistQueue   8 /* Like SRT_Queue, but unique results only */

Definition at line 12390 of file sqlite3.c.

#define SRT_EphemTab   12 /* Create transient tab and store like SRT_Table */

Definition at line 12398 of file sqlite3.c.

#define SRT_Except   2 /* Remove result from a UNION index */

Definition at line 12384 of file sqlite3.c.

#define SRT_Exists   3 /* Store 1 if the result is not empty */

Definition at line 12385 of file sqlite3.c.

#define SRT_Fifo   5 /* Store result as data with an automatic rowid */

Definition at line 12387 of file sqlite3.c.

#define SRT_Mem   10 /* Store result in a memory cell */

Definition at line 12396 of file sqlite3.c.

#define SRT_Output   9 /* Output each row of result */

Definition at line 12395 of file sqlite3.c.

#define SRT_Queue   7 /* Store result in an queue */

Definition at line 12389 of file sqlite3.c.

#define SRT_Set   11 /* Store results as keys in an index */

Definition at line 12397 of file sqlite3.c.

#define SRT_Table   14 /* Store result as data with an automatic rowid */

Definition at line 12400 of file sqlite3.c.

#define SRT_Union   1 /* Store result as keys in an index */

Definition at line 12383 of file sqlite3.c.

#define SRVAL (   p)    ((void*)((SorterRecord*)(p) + 1))

Definition at line 78385 of file sqlite3.c.

#define STAT_GET_NDLT   4 /* "ndlt" column of stat[34] entry */

Definition at line 88862 of file sqlite3.c.

#define STAT_GET_NEQ   2 /* "neq" column of stat[34] entry */

Definition at line 88860 of file sqlite3.c.

#define STAT_GET_NLT   3 /* "nlt" column of stat[34] entry */

Definition at line 88861 of file sqlite3.c.

#define STAT_GET_ROWID   1 /* "rowid" column of stat[34] entry */

Definition at line 88859 of file sqlite3.c.

#define STAT_GET_STAT1   0 /* "stat" column of stat1 table */

Definition at line 88858 of file sqlite3.c.

#define STR_FUNCTION (   zName,
  nArg,
  pArg,
  bNC,
  xFunc 
)
Value:
pArg, 0, xFunc, 0, 0, #zName, 0, 0}
#define SQLITE_UTF8
Definition: sqlite3.c:4463
#define SQLITE_FUNC_CONSTANT
Definition: sqlite3.c:11250
#define SQLITE_FUNC_NEEDCOLL
Definition: sqlite3.c:11244

Definition at line 11290 of file sqlite3.c.

#define STRACCUM_NOMEM   1

Definition at line 12758 of file sqlite3.c.

#define STRACCUM_TOOBIG   2

Definition at line 12759 of file sqlite3.c.

#define STRICMP (   x,
 
)
Value:
(\
sqlite3UpperToLower[*(unsigned char *)(x)]== \
sqlite3UpperToLower[*(unsigned char *)(y)] \
&& sqlite3StrICmp((x)+1,(y)+1)==0 )
SQLITE_PRIVATE const unsigned char sqlite3UpperToLower[]
Definition: sqlite3.c:13813
#define sqlite3StrICmp
Definition: sqlite3.c:12980

Definition at line 91856 of file sqlite3.c.

#define Stringify (   P,
  enc 
)
Value:
if(((P)->flags&(MEM_Str|MEM_Blob))==0 && sqlite3VdbeMemStringify(P,enc,0)) \
{ goto no_mem; }
#define MEM_Str
Definition: sqlite3.c:14701
SQLITE_PRIVATE int sqlite3VdbeMemStringify(Mem *, u8, u8)
Definition: sqlite3.c:63400
#define MEM_Blob
Definition: sqlite3.c:14704

Definition at line 70923 of file sqlite3.c.

#define SWAP (   TYPE,
  A,
 
)    {TYPE t=A; A=B; B=t;}

Definition at line 8897 of file sqlite3.c.

#define swapMixedEndianFloat (   X)

Definition at line 67796 of file sqlite3.c.

#define TEMP_MASTER_NAME   "sqlite_temp_master"

Definition at line 9182 of file sqlite3.c.

#define TERM_ANDINFO   0x20 /* Need to free the WhereTerm.u.pAndInfo obj */

Definition at line 116004 of file sqlite3.c.

#define TERM_CODED   0x04 /* This term is already coded */

Definition at line 116001 of file sqlite3.c.

#define TERM_COPIED   0x08 /* Has a child */

Definition at line 116002 of file sqlite3.c.

#define TERM_DYNAMIC   0x01 /* Need to call sqlite3ExprDelete(db, pExpr) */

Definition at line 115999 of file sqlite3.c.

#define TERM_LIKE   0x400 /* The original LIKE operator */

Definition at line 116013 of file sqlite3.c.

#define TERM_LIKECOND   0x200 /* Conditionally this LIKE operator term */

Definition at line 116012 of file sqlite3.c.

#define TERM_LIKEOPT   0x100 /* Virtual terms from the LIKE optimization */

Definition at line 116011 of file sqlite3.c.

#define TERM_OR_OK   0x40 /* Used during OR-clause processing */

Definition at line 116005 of file sqlite3.c.

#define TERM_ORINFO   0x10 /* Need to free the WhereTerm.u.pOrInfo object */

Definition at line 116003 of file sqlite3.c.

#define TERM_VIRTUAL   0x02 /* Added by the optimizer. Do not code */

Definition at line 116000 of file sqlite3.c.

#define TERM_VNULL   0x00 /* Disabled if not using stat3 */

Definition at line 116009 of file sqlite3.c.

#define TESTBIT (   V,
 
)    (V[I>>3]&(1<<(I&7)))!=0

Definition at line 39178 of file sqlite3.c.

#define testcase (   X)

Definition at line 8458 of file sqlite3.c.

#define TESTONLY (   X)

Definition at line 8469 of file sqlite3.c.

#define TF_Autoincrement   0x08 /* Integer primary key is autoincrement */

Definition at line 11551 of file sqlite3.c.

#define TF_Ephemeral   0x02 /* An ephemeral table */

Definition at line 11549 of file sqlite3.c.

#define TF_HasPrimaryKey   0x04 /* Table has a primary key */

Definition at line 11550 of file sqlite3.c.

#define TF_OOOHidden   0x40 /* Out-of-Order hidden columns */

Definition at line 11554 of file sqlite3.c.

#define TF_Readonly   0x01 /* Read-only system table */

Definition at line 11548 of file sqlite3.c.

#define TF_Virtual   0x10 /* Is a virtual table */

Definition at line 11552 of file sqlite3.c.

#define TF_WithoutRowid   0x20 /* No rowid used. PRIMARY KEY is the key */

Definition at line 11553 of file sqlite3.c.

#define threadid   pthread_self()

Definition at line 25758 of file sqlite3.c.

#define THREE_BYTE_INT (   x)    (65536*(i8)((x)[0])|((x)[1]<<8)|(x)[2])

Definition at line 67853 of file sqlite3.c.

#define TIMER_ELAPSED   ((sqlite_uint64)0)

Definition at line 25678 of file sqlite3.c.

#define TIMER_END

Definition at line 25677 of file sqlite3.c.

#define TIMER_START

Definition at line 25676 of file sqlite3.c.

#define TK_ABORT   29

Definition at line 8660 of file sqlite3.c.

#define TK_ACTION   30

Definition at line 8661 of file sqlite3.c.

#define TK_ADD   142

Definition at line 8773 of file sqlite3.c.

#define TK_AFTER   31

Definition at line 8662 of file sqlite3.c.

#define TK_AGG_COLUMN   156

Definition at line 8787 of file sqlite3.c.

#define TK_AGG_FUNCTION   155

Definition at line 8786 of file sqlite3.c.

#define TK_ALL   116

Definition at line 8747 of file sqlite3.c.

#define TK_ALTER   141

Definition at line 8772 of file sqlite3.c.

#define TK_ANALYZE   32

Definition at line 8663 of file sqlite3.c.

#define TK_AND   72

Definition at line 8703 of file sqlite3.c.

#define TK_ANY   70

Definition at line 8701 of file sqlite3.c.

#define TK_AS   24

Definition at line 8655 of file sqlite3.c.

#define TK_ASC   33

Definition at line 8664 of file sqlite3.c.

#define TK_ATTACH   34

Definition at line 8665 of file sqlite3.c.

#define TK_AUTOINCR   106

Definition at line 8737 of file sqlite3.c.

#define TK_BEFORE   35

Definition at line 8666 of file sqlite3.c.

#define TK_BEGIN   5

Definition at line 8636 of file sqlite3.c.

#define TK_BETWEEN   74

Definition at line 8705 of file sqlite3.c.

#define TK_BITAND   85

Definition at line 8716 of file sqlite3.c.

#define TK_BITNOT   96

Definition at line 8727 of file sqlite3.c.

#define TK_BITOR   86

Definition at line 8717 of file sqlite3.c.

#define TK_BLOB   134

Definition at line 8765 of file sqlite3.c.

#define TK_BY   36

Definition at line 8667 of file sqlite3.c.

#define TK_CASCADE   37

Definition at line 8668 of file sqlite3.c.

#define TK_CASE   136

Definition at line 8767 of file sqlite3.c.

#define TK_CAST   38

Definition at line 8669 of file sqlite3.c.

#define TK_CHECK   104

Definition at line 8735 of file sqlite3.c.

#define TK_COLLATE   95

Definition at line 8726 of file sqlite3.c.

#define TK_COLUMN   154

Definition at line 8785 of file sqlite3.c.

#define TK_COLUMNKW   39

Definition at line 8670 of file sqlite3.c.

#define TK_COMMA   26

Definition at line 8657 of file sqlite3.c.

#define TK_COMMIT   10

Definition at line 8641 of file sqlite3.c.

#define TK_CONCAT   94

Definition at line 8725 of file sqlite3.c.

#define TK_CONFLICT   40

Definition at line 8671 of file sqlite3.c.

#define TK_CONSTRAINT   99

Definition at line 8730 of file sqlite3.c.

#define TK_CREATE   17

Definition at line 8648 of file sqlite3.c.

#define TK_CTIME_KW   69

Definition at line 8700 of file sqlite3.c.

#define TK_DATABASE   41

Definition at line 8672 of file sqlite3.c.

#define TK_DEFAULT   100

Definition at line 8731 of file sqlite3.c.

#define TK_DEFERRABLE   112

Definition at line 8743 of file sqlite3.c.

#define TK_DEFERRED   7

Definition at line 8638 of file sqlite3.c.

#define TK_DELETE   109

Definition at line 8740 of file sqlite3.c.

#define TK_DESC   42

Definition at line 8673 of file sqlite3.c.

#define TK_DETACH   43

Definition at line 8674 of file sqlite3.c.

#define TK_DISTINCT   121

Definition at line 8752 of file sqlite3.c.

#define TK_DOT   122

Definition at line 8753 of file sqlite3.c.

#define TK_DROP   114

Definition at line 8745 of file sqlite3.c.

#define TK_EACH   44

Definition at line 8675 of file sqlite3.c.

#define TK_ELSE   139

Definition at line 8770 of file sqlite3.c.

#define TK_END   11

Definition at line 8642 of file sqlite3.c.

#define TK_END_OF_FILE   149

Definition at line 8780 of file sqlite3.c.

#define TK_EQ   79

Definition at line 8710 of file sqlite3.c.

#define TK_ESCAPE   84

Definition at line 8715 of file sqlite3.c.

#define TK_EXCEPT   117

Definition at line 8748 of file sqlite3.c.

#define TK_EXCLUSIVE   9

Definition at line 8640 of file sqlite3.c.

#define TK_EXISTS   20

Definition at line 8651 of file sqlite3.c.

#define TK_EXPLAIN   2

Definition at line 8633 of file sqlite3.c.

#define TK_FAIL   45

Definition at line 8676 of file sqlite3.c.

#define TK_FLOAT   133

Definition at line 8764 of file sqlite3.c.

#define TK_FOR   46

Definition at line 8677 of file sqlite3.c.

#define TK_FOREIGN   113

Definition at line 8744 of file sqlite3.c.

#define TK_FROM   123

Definition at line 8754 of file sqlite3.c.

#define TK_FUNCTION   153

Definition at line 8784 of file sqlite3.c.

#define TK_GE   83

Definition at line 8714 of file sqlite3.c.

#define TK_GROUP   127

Definition at line 8758 of file sqlite3.c.

#define TK_GT   80

Definition at line 8711 of file sqlite3.c.

#define TK_HAVING   128

Definition at line 8759 of file sqlite3.c.

#define TK_ID   27

Definition at line 8658 of file sqlite3.c.

#define TK_IF   18

Definition at line 8649 of file sqlite3.c.

#define TK_IGNORE   47

Definition at line 8678 of file sqlite3.c.

#define TK_ILLEGAL   150

Definition at line 8781 of file sqlite3.c.

#define TK_IMMEDIATE   8

Definition at line 8639 of file sqlite3.c.

#define TK_IN   75

Definition at line 8706 of file sqlite3.c.

#define TK_INDEX   140

Definition at line 8771 of file sqlite3.c.

#define TK_INDEXED   28

Definition at line 8659 of file sqlite3.c.

#define TK_INITIALLY   48

Definition at line 8679 of file sqlite3.c.

#define TK_INSERT   108

Definition at line 8739 of file sqlite3.c.

#define TK_INSTEAD   49

Definition at line 8680 of file sqlite3.c.

#define TK_INTEGER   132

Definition at line 8763 of file sqlite3.c.

#define TK_INTERSECT   118

Definition at line 8749 of file sqlite3.c.

#define TK_INTO   131

Definition at line 8762 of file sqlite3.c.

#define TK_IS   73

Definition at line 8704 of file sqlite3.c.

#define TK_ISNOT   148

Definition at line 8779 of file sqlite3.c.

#define TK_ISNULL   76

Definition at line 8707 of file sqlite3.c.

#define TK_JOIN   124

Definition at line 8755 of file sqlite3.c.

#define TK_JOIN_KW   98

Definition at line 8729 of file sqlite3.c.

#define TK_KEY   53

Definition at line 8684 of file sqlite3.c.

#define TK_LE   81

Definition at line 8712 of file sqlite3.c.

#define TK_LIKE_KW   50

Definition at line 8681 of file sqlite3.c.

#define TK_LIMIT   129

Definition at line 8760 of file sqlite3.c.

#define TK_LP   22

Definition at line 8653 of file sqlite3.c.

#define TK_LSHIFT   87

Definition at line 8718 of file sqlite3.c.

#define TK_LT   82

Definition at line 8713 of file sqlite3.c.

#define TK_MATCH   51

Definition at line 8682 of file sqlite3.c.

#define TK_MINUS   90

Definition at line 8721 of file sqlite3.c.

#define TK_NE   78

Definition at line 8709 of file sqlite3.c.

#define TK_NO   52

Definition at line 8683 of file sqlite3.c.

#define TK_NOT   19

Definition at line 8650 of file sqlite3.c.

#define TK_NOTNULL   77

Definition at line 8708 of file sqlite3.c.

#define TK_NULL   101

Definition at line 8732 of file sqlite3.c.

#define TK_OF   54

Definition at line 8685 of file sqlite3.c.

#define TK_OFFSET   55

Definition at line 8686 of file sqlite3.c.

#define TK_ON   107

Definition at line 8738 of file sqlite3.c.

#define TK_OR   71

Definition at line 8702 of file sqlite3.c.

#define TK_ORDER   126

Definition at line 8757 of file sqlite3.c.

#define TK_PLAN   4

Definition at line 8635 of file sqlite3.c.

#define TK_PLUS   89

Definition at line 8720 of file sqlite3.c.

#define TK_PRAGMA   56

Definition at line 8687 of file sqlite3.c.

#define TK_PRIMARY   102

Definition at line 8733 of file sqlite3.c.

#define TK_QUERY   3

Definition at line 8634 of file sqlite3.c.

#define TK_RAISE   57

Definition at line 8688 of file sqlite3.c.

#define TK_RECURSIVE   58

Definition at line 8689 of file sqlite3.c.

#define TK_REFERENCES   105

Definition at line 8736 of file sqlite3.c.

#define TK_REGISTER   159

Definition at line 8790 of file sqlite3.c.

#define TK_REINDEX   67

Definition at line 8698 of file sqlite3.c.

#define TK_RELEASE   14

Definition at line 8645 of file sqlite3.c.

#define TK_REM   93

Definition at line 8724 of file sqlite3.c.

#define TK_RENAME   68

Definition at line 8699 of file sqlite3.c.

#define TK_REPLACE   59

Definition at line 8690 of file sqlite3.c.

#define TK_RESTRICT   60

Definition at line 8691 of file sqlite3.c.

#define TK_ROLLBACK   12

Definition at line 8643 of file sqlite3.c.

#define TK_ROW   61

Definition at line 8692 of file sqlite3.c.

#define TK_RP   23

Definition at line 8654 of file sqlite3.c.

#define TK_RSHIFT   88

Definition at line 8719 of file sqlite3.c.

#define TK_SAVEPOINT   13

Definition at line 8644 of file sqlite3.c.

#define TK_SELECT   119

Definition at line 8750 of file sqlite3.c.

#define TK_SEMI   1

Definition at line 8632 of file sqlite3.c.

#define TK_SET   111

Definition at line 8742 of file sqlite3.c.

#define TK_SLASH   92

Definition at line 8723 of file sqlite3.c.

#define TK_SPACE   151

Definition at line 8782 of file sqlite3.c.

#define TK_STAR   91

Definition at line 8722 of file sqlite3.c.

#define TK_STRING   97

Definition at line 8728 of file sqlite3.c.

#define TK_TABLE   16

Definition at line 8647 of file sqlite3.c.

#define TK_TEMP   21

Definition at line 8652 of file sqlite3.c.

#define TK_THEN   138

Definition at line 8769 of file sqlite3.c.

#define TK_TO   15

Definition at line 8646 of file sqlite3.c.

#define TK_TO_BLOB   144

Definition at line 8775 of file sqlite3.c.

#define TK_TO_INT   146

Definition at line 8777 of file sqlite3.c.

#define TK_TO_NUMERIC   145

Definition at line 8776 of file sqlite3.c.

#define TK_TO_REAL   147

Definition at line 8778 of file sqlite3.c.

#define TK_TO_TEXT   143

Definition at line 8774 of file sqlite3.c.

#define TK_TRANSACTION   6

Definition at line 8637 of file sqlite3.c.

#define TK_TRIGGER   62

Definition at line 8693 of file sqlite3.c.

#define TK_UMINUS   157

Definition at line 8788 of file sqlite3.c.

#define TK_UNCLOSED_STRING   152

Definition at line 8783 of file sqlite3.c.

#define TK_UNION   115

Definition at line 8746 of file sqlite3.c.

#define TK_UNIQUE   103

Definition at line 8734 of file sqlite3.c.

#define TK_UPDATE   110

Definition at line 8741 of file sqlite3.c.

#define TK_UPLUS   158

Definition at line 8789 of file sqlite3.c.

#define TK_USING   125

Definition at line 8756 of file sqlite3.c.

#define TK_VACUUM   63

Definition at line 8694 of file sqlite3.c.

#define TK_VALUES   120

Definition at line 8751 of file sqlite3.c.

#define TK_VARIABLE   135

Definition at line 8766 of file sqlite3.c.

#define TK_VIEW   64

Definition at line 8695 of file sqlite3.c.

#define TK_VIRTUAL   65

Definition at line 8696 of file sqlite3.c.

#define TK_WHEN   137

Definition at line 8768 of file sqlite3.c.

#define TK_WHERE   130

Definition at line 8761 of file sqlite3.c.

#define TK_WITH   66

Definition at line 8697 of file sqlite3.c.

#define TK_WITHOUT   25

Definition at line 8656 of file sqlite3.c.

#define tkCREATE   4

Definition at line 127659 of file sqlite3.c.

#define tkEND   7

Definition at line 127662 of file sqlite3.c.

#define tkEXPLAIN   3

Definition at line 127658 of file sqlite3.c.

#define tkOTHER   2

Definition at line 127656 of file sqlite3.c.

#define tkSEMI   0

Definition at line 127654 of file sqlite3.c.

#define tkTEMP   5

Definition at line 127660 of file sqlite3.c.

#define tkTRIGGER   6

Definition at line 127661 of file sqlite3.c.

#define tkWS   1

Definition at line 127655 of file sqlite3.c.

#define TOKEN   (yyminor.yy0)
#define TRACE (   X)

Definition at line 53114 of file sqlite3.c.

#define TRACE_IDX_INPUTS (   A)

Definition at line 117845 of file sqlite3.c.

#define TRACE_IDX_OUTPUTS (   A)

Definition at line 117846 of file sqlite3.c.

#define TRANS_NONE   0

Definition at line 52482 of file sqlite3.c.

#define TRANS_READ   1

Definition at line 52483 of file sqlite3.c.

#define TRANS_WRITE   2

Definition at line 52484 of file sqlite3.c.

#define TRIGGER_AFTER   2

Definition at line 12676 of file sqlite3.c.

#define TRIGGER_BEFORE   1

Definition at line 12675 of file sqlite3.c.

#define TWO_BYTE_INT (   x)    (256*(i8)((x)[0])|(x)[1])

Definition at line 67852 of file sqlite3.c.

#define TWOPOWER31   (((i64)1)<<31)

Definition at line 24664 of file sqlite3.c.

#define TWOPOWER32   (((i64)1)<<32)

Definition at line 24663 of file sqlite3.c.

#define UINT16_TYPE   unsigned short int

Definition at line 8927 of file sqlite3.c.

#define UINT32_TYPE   unsigned int

Definition at line 8920 of file sqlite3.c.

#define UINT8_TYPE   unsigned char

Definition at line 8941 of file sqlite3.c.

#define UNIX_SHM_BASE   ((22+SQLITE_SHM_NLOCK)*4) /* first lock byte */

Definition at line 29566 of file sqlite3.c.

#define UNIX_SHM_DMS   (UNIX_SHM_BASE+SQLITE_SHM_NLOCK) /* deadman switch */

Definition at line 29567 of file sqlite3.c.

#define UNIXFILE_BLOCK   0x0200 /* Next SHM lock might block */

Definition at line 25521 of file sqlite3.c.

#define UNIXFILE_DELETE   0x20 /* Delete on close */

Definition at line 25517 of file sqlite3.c.

#define UNIXFILE_DIRSYNC   0x08 /* Directory sync needed */

Definition at line 25512 of file sqlite3.c.

#define UNIXFILE_EXCL   0x01 /* Connections from one process only */

Definition at line 25508 of file sqlite3.c.

#define UNIXFILE_NOLOCK   0x80 /* Do no file locking */

Definition at line 25519 of file sqlite3.c.

#define UNIXFILE_PERSIST_WAL   0x04 /* Persistent WAL mode */

Definition at line 25510 of file sqlite3.c.

#define UNIXFILE_PSOW   0x10 /* SQLITE_IOCAP_POWERSAFE_OVERWRITE */

Definition at line 25516 of file sqlite3.c.

#define UNIXFILE_RDONLY   0x02 /* Connection is read only */

Definition at line 25509 of file sqlite3.c.

#define UNIXFILE_URI   0x40 /* Filename might have query parameters */

Definition at line 25518 of file sqlite3.c.

#define UNIXFILE_WARNED   0x0100 /* verifyDbFile() warnings issued */

Definition at line 25520 of file sqlite3.c.

#define unixLogError (   a,
  b,
 
)    unixLogErrorAtLine(a,b,c,__LINE__)

Definition at line 26580 of file sqlite3.c.

#define UNIXVFS (   VFSNAME,
  FINDER 
)
Value:
{ \
3, /* iVersion */ \
sizeof(unixFile), /* szOsFile */ \
MAX_PATHNAME, /* mxPathname */ \
0, /* pNext */ \
VFSNAME, /* zName */ \
(void*)&FINDER, /* pAppData */ \
unixOpen, /* xOpen */ \
unixDelete, /* xDelete */ \
unixAccess, /* xAccess */ \
unixFullPathname, /* xFullPathname */ \
unixDlOpen, /* xDlOpen */ \
unixDlError, /* xDlError */ \
unixDlSym, /* xDlSym */ \
unixDlClose, /* xDlClose */ \
unixRandomness, /* xRandomness */ \
unixSleep, /* xSleep */ \
unixCurrentTime, /* xCurrentTime */ \
unixGetLastError, /* xGetLastError */ \
unixCurrentTimeInt64, /* xCurrentTimeInt64 */ \
unixSetSystemCall, /* xSetSystemCall */ \
unixGetSystemCall, /* xGetSystemCall */ \
unixNextSystemCall, /* xNextSystemCall */ \
}
#define MAX_PATHNAME
Definition: sqlite3.c:25409
#define UNKNOWN_LOCK   (EXCLUSIVE_LOCK+1)

Definition at line 42070 of file sqlite3.c.

#define unlikely (   X)    (X)

Definition at line 8527 of file sqlite3.c.

#define UNUSED_PARAMETER (   x)    (void)(x)

Definition at line 9257 of file sqlite3.c.

#define UNUSED_PARAMETER2 (   x,
 
)    UNUSED_PARAMETER(x),UNUSED_PARAMETER(y)

Definition at line 9258 of file sqlite3.c.

#define UPDATE_MAX_BLOBSIZE (   P)

Definition at line 70882 of file sqlite3.c.

#define UpperToLower   sqlite3UpperToLower

Definition at line 23679 of file sqlite3.c.

#define USEFETCH (   x)    0

Definition at line 42454 of file sqlite3.c.

#define valueFromFunction (   a,
  b,
  c,
  d,
  e,
 
)    SQLITE_OK

Definition at line 64359 of file sqlite3.c.

#define VDBE_MAGIC_DEAD   0xb606c3c8 /* The VDBE has been deallocated */

Definition at line 14888 of file sqlite3.c.

#define VDBE_MAGIC_HALT   0x519c2973 /* VDBE has completed execution */

Definition at line 14887 of file sqlite3.c.

#define VDBE_MAGIC_INIT   0x26bceaa5 /* Building a VDBE program */

Definition at line 14885 of file sqlite3.c.

#define VDBE_MAGIC_RUN   0xbdf20da3 /* VDBE is ready to execute */

Definition at line 14886 of file sqlite3.c.

#define VDBE_OFFSET_LINENO (   x)    0

Definition at line 10074 of file sqlite3.c.

#define vdbeAssertFieldCountWithinLimits (   A,
  B,
 
)

Definition at line 68205 of file sqlite3.c.

#define VdbeBranchTaken (   I,
 
)

Definition at line 70902 of file sqlite3.c.

#define VdbeComment (   X)

Definition at line 10035 of file sqlite3.c.

#define VdbeCoverage (   v)

Definition at line 10070 of file sqlite3.c.

#define VdbeCoverageAlwaysTaken (   v)

Definition at line 10072 of file sqlite3.c.

#define VdbeCoverageIf (   v,
 
)

Definition at line 10071 of file sqlite3.c.

#define VdbeCoverageNeverTaken (   v)

Definition at line 10073 of file sqlite3.c.

#define VdbeFrameMem (   p)    ((Mem *)&((u8 *)p)[ROUND8(sizeof(VdbeFrame))])

Definition at line 14651 of file sqlite3.c.

#define vdbeInvokeSqllog (   x)

Definition at line 67382 of file sqlite3.c.

#define VdbeMemDynamic (   X)    (((X)->flags&(MEM_Agg|MEM_Dyn|MEM_RowSet|MEM_Frame))!=0)

Definition at line 14940 of file sqlite3.c.

#define VdbeModuleComment (   X)

Definition at line 10037 of file sqlite3.c.

#define VdbeNoopComment (   X)

Definition at line 10036 of file sqlite3.c.

#define vdbeSorterBlockDebug (   x,
  y,
 
)

Definition at line 79022 of file sqlite3.c.

#define vdbeSorterExtendFile (   x,
  y,
 
)

Definition at line 79211 of file sqlite3.c.

#define vdbeSorterPopulateDebug (   x,
 
)

Definition at line 79021 of file sqlite3.c.

#define vdbeSorterRewindDebug (   y)

Definition at line 79020 of file sqlite3.c.

#define vdbeSorterWorkDebug (   x,
 
)

Definition at line 79019 of file sqlite3.c.

#define vfsList   GLOBAL(sqlite3_vfs *, vfsList)

Definition at line 16769 of file sqlite3.c.

#define VFUNCTION (   zName,
  nArg,
  iArg,
  bNC,
  xFunc 
)
Value:
SQLITE_INT_TO_PTR(iArg), 0, xFunc, 0, 0, #zName, 0, 0}
#define SQLITE_UTF8
Definition: sqlite3.c:4463
#define SQLITE_INT_TO_PTR(X)
Definition: sqlite3.c:8306
#define SQLITE_FUNC_NEEDCOLL
Definition: sqlite3.c:11244

Definition at line 11284 of file sqlite3.c.

#define VVA_ONLY (   X)

Definition at line 8483 of file sqlite3.c.

#define WAL_ALL_BUT_WRITE   1

Definition at line 49211 of file sqlite3.c.

#define WAL_CKPT_LOCK   1

Definition at line 49212 of file sqlite3.c.

#define WAL_EXCLUSIVE_MODE   1

Definition at line 49375 of file sqlite3.c.

#define WAL_FRAME_HDRSIZE   24

Definition at line 49314 of file sqlite3.c.

#define WAL_HDRSIZE   32

Definition at line 49318 of file sqlite3.c.

#define WAL_HEAPMEMORY_MODE   2

Definition at line 49376 of file sqlite3.c.

#define WAL_MAGIC   0x377f0682

Definition at line 49329 of file sqlite3.c.

#define WAL_MAX_VERSION   3007000

Definition at line 49203 of file sqlite3.c.

#define WAL_NORMAL_MODE   0

Definition at line 49374 of file sqlite3.c.

#define WAL_NREADER   (SQLITE_SHM_NLOCK-3)

Definition at line 49215 of file sqlite3.c.

#define WAL_RDONLY   1 /* The WAL file is readonly */

Definition at line 49382 of file sqlite3.c.

#define WAL_RDWR   0 /* Normal read/write connection */

Definition at line 49381 of file sqlite3.c.

#define WAL_READ_LOCK (   I)    (3+(I))

Definition at line 49214 of file sqlite3.c.

#define WAL_RECOVER_LOCK   2

Definition at line 49213 of file sqlite3.c.

#define WAL_RETRY   (-1)

Definition at line 51021 of file sqlite3.c.

#define WAL_SAVEPOINT_NDATA   4

Definition at line 41595 of file sqlite3.c.

#define WAL_SHM_RDONLY   2 /* The SHM file is readonly */

Definition at line 49383 of file sqlite3.c.

#define WAL_SYNC_TRANSACTIONS   0x20 /* Sync at the end of each transaction */

Definition at line 41571 of file sqlite3.c.

#define WAL_WRITE_LOCK   0

Definition at line 49210 of file sqlite3.c.

#define walFrameOffset (   iFrame,
  szPage 
)
Value:
( \
WAL_HDRSIZE + ((iFrame)-1)*(i64)((szPage)+WAL_FRAME_HDRSIZE) \
)
#define WAL_HDRSIZE
Definition: sqlite3.c:49318
#define WAL_FRAME_HDRSIZE
Definition: sqlite3.c:49314
sqlite_int64 i64
Definition: sqlite3.c:8954

Definition at line 49336 of file sqlite3.c.

#define WALINDEX_HDR_SIZE   (WALINDEX_LOCK_OFFSET+WALINDEX_LOCK_RESERVED)

Definition at line 49311 of file sqlite3.c.

#define WALINDEX_LOCK_OFFSET   (sizeof(WalIndexHdr)*2 + sizeof(WalCkptInfo))

Definition at line 49309 of file sqlite3.c.

#define WALINDEX_LOCK_RESERVED   16

Definition at line 49310 of file sqlite3.c.

#define WALINDEX_MAX_VERSION   3007000

Definition at line 49204 of file sqlite3.c.

#define WALINDEX_PGSZ
Value:
( \
)
#define HASHTABLE_NPAGE
Definition: sqlite3.c:49426
UINT32_TYPE u32
Definition: sqlite3.c:8956
#define HASHTABLE_NSLOT
Definition: sqlite3.c:49428
u16 ht_slot
Definition: sqlite3.c:49389

Definition at line 49438 of file sqlite3.c.

#define WALTRACE (   X)

Definition at line 49187 of file sqlite3.c.

#define WHERE_AUTO_INDEX   0x00004000 /* Uses an ephemeral index */

Definition at line 116198 of file sqlite3.c.

#define WHERE_BOTH_LIMIT   0x00000030 /* Both x>EXPR and x<EXPR */

Definition at line 116190 of file sqlite3.c.

#define WHERE_BTM_LIMIT   0x00000020 /* x>EXPR or x>=EXPR constraint */

Definition at line 116189 of file sqlite3.c.

#define WHERE_COLUMN_EQ   0x00000001 /* x=EXPR */

Definition at line 116183 of file sqlite3.c.

#define WHERE_COLUMN_IN   0x00000004 /* x IN (...) */

Definition at line 116185 of file sqlite3.c.

#define WHERE_COLUMN_NULL   0x00000008 /* x IS NULL */

Definition at line 116186 of file sqlite3.c.

#define WHERE_COLUMN_RANGE   0x00000002 /* x<EXPR and/or x>EXPR */

Definition at line 116184 of file sqlite3.c.

#define WHERE_CONSTRAINT   0x0000000f /* Any of the WHERE_COLUMN_xxx values */

Definition at line 116187 of file sqlite3.c.

#define WHERE_DISTINCT_NOOP   0 /* DISTINCT keyword not used */

Definition at line 12206 of file sqlite3.c.

#define WHERE_DISTINCT_ORDERED   2 /* All duplicates are adjacent */

Definition at line 12208 of file sqlite3.c.

#define WHERE_DISTINCT_UNIQUE   1 /* No duplicates */

Definition at line 12207 of file sqlite3.c.

#define WHERE_DISTINCT_UNORDERED   3 /* Duplicates are scattered */

Definition at line 12209 of file sqlite3.c.

#define WHERE_DISTINCTBY   0x0200 /* pOrderby is really a DISTINCT clause */

Definition at line 12199 of file sqlite3.c.

#define WHERE_DUPLICATES_OK   0x0008 /* Ok to return a row more than once */

Definition at line 12193 of file sqlite3.c.

#define WHERE_FORCE_TABLE   0x0020 /* Do not use an index-only search */

Definition at line 12195 of file sqlite3.c.

#define WHERE_GROUPBY   0x0100 /* pOrderBy is really a GROUP BY */

Definition at line 12198 of file sqlite3.c.

#define WHERE_IDX_ONLY   0x00000040 /* Use index only - omit table */

Definition at line 116191 of file sqlite3.c.

#define WHERE_IN_ABLE   0x00000800 /* Able to support an IN operator */

Definition at line 116195 of file sqlite3.c.

#define WHERE_INDEXED   0x00000200 /* WhereLoop.u.btree.pIndex is valid */

Definition at line 116193 of file sqlite3.c.

#define WHERE_IPK   0x00000100 /* x is the INTEGER PRIMARY KEY */

Definition at line 116192 of file sqlite3.c.

#define WHERE_LOOP_XFER_SZ   offsetof(WhereLoop,nLSlot)

Definition at line 115868 of file sqlite3.c.

#define WHERE_MULTI_OR   0x00002000 /* OR using multiple indices */

Definition at line 116197 of file sqlite3.c.

#define WHERE_NO_AUTOINDEX   0x0080 /* Disallow automatic indexes */

Definition at line 12197 of file sqlite3.c.

#define WHERE_OMIT_OPEN_CLOSE   0x0010 /* Table cursors are already open */

Definition at line 12194 of file sqlite3.c.

#define WHERE_ONEPASS_DESIRED   0x0004 /* Want to do one-pass UPDATE/DELETE */

Definition at line 12192 of file sqlite3.c.

#define WHERE_ONEROW   0x00001000 /* Selects no more than one row */

Definition at line 116196 of file sqlite3.c.

#define WHERE_ONETABLE_ONLY   0x0040 /* Only code the 1st table in pTabList */

Definition at line 12196 of file sqlite3.c.

#define WHERE_ORDERBY_MAX   0x0002 /* ORDER BY processing for max() func */

Definition at line 12191 of file sqlite3.c.

#define WHERE_ORDERBY_MIN   0x0001 /* ORDER BY processing for min() func */

Definition at line 12190 of file sqlite3.c.

#define WHERE_ORDERBY_NORMAL   0x0000 /* No-op */

Definition at line 12189 of file sqlite3.c.

#define WHERE_PARTIALIDX   0x00020000 /* The automatic index is partial */

Definition at line 116201 of file sqlite3.c.

#define WHERE_REOPEN_IDX   0x1000 /* Try to use OP_ReopenIdx */

Definition at line 12202 of file sqlite3.c.

#define WHERE_SKIPSCAN   0x00008000 /* Uses the skip-scan algorithm */

Definition at line 116199 of file sqlite3.c.

#define WHERE_SORTBYGROUP   0x0800 /* Support sqlite3WhereIsSorted() */

Definition at line 12201 of file sqlite3.c.

#define WHERE_TOP_LIMIT   0x00000010 /* x<EXPR or x<=EXPR constraint */

Definition at line 116188 of file sqlite3.c.

#define WHERE_UNQ_WANTED   0x00010000 /* WHERE_ONEROW would have been helpful*/

Definition at line 116200 of file sqlite3.c.

#define WHERE_VIRTUALTABLE   0x00000400 /* WhereLoop.u.vtab is valid */

Definition at line 116194 of file sqlite3.c.

#define WHERE_WANT_DISTINCT   0x0400 /* All output needs to be distinct */

Definition at line 12200 of file sqlite3.c.

#define WHERETRACE (   K,
 
)

Definition at line 115760 of file sqlite3.c.

#define WO_ALL   0xfff /* Mask of all possible WO_* values */

Definition at line 116175 of file sqlite3.c.

#define WO_AND   0x200 /* Two or more AND-connected terms */

Definition at line 116171 of file sqlite3.c.

#define WO_EQ   0x002

Definition at line 116163 of file sqlite3.c.

#define WO_EQUIV   0x400 /* Of the form A==B, both columns */

Definition at line 116172 of file sqlite3.c.

#define WO_GE   (WO_EQ<<(TK_GE-TK_EQ))

Definition at line 116167 of file sqlite3.c.

#define WO_GT   (WO_EQ<<(TK_GT-TK_EQ))

Definition at line 116166 of file sqlite3.c.

#define WO_IN   0x001

Definition at line 116162 of file sqlite3.c.

#define WO_ISNULL   0x080

Definition at line 116169 of file sqlite3.c.

#define WO_LE   (WO_EQ<<(TK_LE-TK_EQ))

Definition at line 116165 of file sqlite3.c.

#define WO_LT   (WO_EQ<<(TK_LT-TK_EQ))

Definition at line 116164 of file sqlite3.c.

#define WO_MATCH   0x040

Definition at line 116168 of file sqlite3.c.

#define WO_NOOP   0x800 /* This term does not restrict search space */

Definition at line 116173 of file sqlite3.c.

#define WO_OR   0x100 /* Two or more OR-connected terms */

Definition at line 116170 of file sqlite3.c.

#define WO_SINGLE   0x0ff /* Mask of all non-compound WO_* values */

Definition at line 116176 of file sqlite3.c.

#define WRC_Abort   2 /* Abandon the tree walk */

Definition at line 12882 of file sqlite3.c.

#define WRC_Continue   0 /* Continue down into children */

Definition at line 12880 of file sqlite3.c.

#define WRC_Prune   1 /* Omit children but continue walking siblings */

Definition at line 12881 of file sqlite3.c.

#define WRITE_LOCK   2

Definition at line 52436 of file sqlite3.c.

#define WRITE_UTF16BE (   zOut,
 
)
Value:
{ \
if( c<=0xFFFF ){ \
*zOut++ = (u8)((c>>8)&0x00FF); \
*zOut++ = (u8)(c&0x00FF); \
}else{ \
*zOut++ = (u8)(0x00D8 + (((c-0x10000)>>18)&0x03)); \
*zOut++ = (u8)(((c>>10)&0x003F) + (((c-0x10000)>>10)&0x00C0)); \
*zOut++ = (u8)(0x00DC + ((c>>8)&0x03)); \
*zOut++ = (u8)(c&0x00FF); \
} \
}
UINT8_TYPE u8
Definition: sqlite3.c:8959

Definition at line 23003 of file sqlite3.c.

#define WRITE_UTF16LE (   zOut,
 
)
Value:
{ \
if( c<=0xFFFF ){ \
*zOut++ = (u8)(c&0x00FF); \
*zOut++ = (u8)((c>>8)&0x00FF); \
}else{ \
*zOut++ = (u8)(((c>>10)&0x003F) + (((c-0x10000)>>10)&0x00C0)); \
*zOut++ = (u8)(0x00D8 + (((c-0x10000)>>18)&0x03)); \
*zOut++ = (u8)(c&0x00FF); \
*zOut++ = (u8)(0x00DC + ((c>>8)&0x03)); \
} \
}
UINT8_TYPE u8
Definition: sqlite3.c:8959

Definition at line 22991 of file sqlite3.c.

#define WRITE_UTF8 (   zOut,
 
)
Value:
{ \
if( c<0x00080 ){ \
*zOut++ = (u8)(c&0xFF); \
} \
else if( c<0x00800 ){ \
*zOut++ = 0xC0 + (u8)((c>>6)&0x1F); \
*zOut++ = 0x80 + (u8)(c & 0x3F); \
} \
else if( c<0x10000 ){ \
*zOut++ = 0xE0 + (u8)((c>>12)&0x0F); \
*zOut++ = 0x80 + (u8)((c>>6) & 0x3F); \
*zOut++ = 0x80 + (u8)(c & 0x3F); \
}else{ \
*zOut++ = 0xF0 + (u8)((c>>18) & 0x07); \
*zOut++ = 0x80 + (u8)((c>>12) & 0x3F); \
*zOut++ = 0x80 + (u8)((c>>6) & 0x3F); \
*zOut++ = 0x80 + (u8)(c & 0x3F); \
} \
}
UINT8_TYPE u8
Definition: sqlite3.c:8959

Definition at line 22971 of file sqlite3.c.

#define wsdAutoext   sqlite3Autoext

Definition at line 103003 of file sqlite3.c.

#define wsdAutoextInit

Definition at line 103002 of file sqlite3.c.

#define wsdHooks   sqlite3Hooks

Definition at line 16911 of file sqlite3.c.

#define wsdHooksInit

Definition at line 16910 of file sqlite3.c.

#define wsdPrng   sqlite3Prng
#define wsdStat   sqlite3Stat

Definition at line 15042 of file sqlite3.c.

#define wsdStatInit

Definition at line 15041 of file sqlite3.c.

#define YY_ACCEPT_ACTION   (YYNSTATE+YYNRULE+1)

Definition at line 123476 of file sqlite3.c.

#define YY_ACTTAB_COUNT   (1497)

Definition at line 123543 of file sqlite3.c.

#define YY_ERROR_ACTION   (YYNSTATE+YYNRULE)

Definition at line 123477 of file sqlite3.c.

#define YY_NO_ACTION   (YYNSTATE+YYNRULE+2)

Definition at line 123475 of file sqlite3.c.

#define YY_REDUCE_COUNT   (305)

Definition at line 123898 of file sqlite3.c.

#define YY_REDUCE_MAX   (1323)

Definition at line 123900 of file sqlite3.c.

#define YY_REDUCE_MIN   (-109)

Definition at line 123899 of file sqlite3.c.

#define YY_REDUCE_USE_DFLT   (-110)

Definition at line 123897 of file sqlite3.c.

#define YY_SHIFT_COUNT   (429)

Definition at line 123849 of file sqlite3.c.

#define YY_SHIFT_MAX   (1383)

Definition at line 123851 of file sqlite3.c.

#define YY_SHIFT_MIN   (-85)

Definition at line 123850 of file sqlite3.c.

#define YY_SHIFT_USE_DFLT   (-86)

Definition at line 123848 of file sqlite3.c.

#define YYACTIONTYPE   unsigned short int

Definition at line 123443 of file sqlite3.c.

#define YYCODETYPE   unsigned char

Definition at line 123441 of file sqlite3.c.

#define YYFALLBACK   1

Definition at line 123474 of file sqlite3.c.

#define YYNOCODE   254

Definition at line 123442 of file sqlite3.c.

#define YYNOERRORRECOVERY   1

Definition at line 123256 of file sqlite3.c.

#define YYNRULE   327

Definition at line 123473 of file sqlite3.c.

#define YYNSTATE   642

Definition at line 123472 of file sqlite3.c.

#define YYSTACKDEPTH   100

Definition at line 123466 of file sqlite3.c.

#define yytestcase (   X)    testcase(X)

Definition at line 123261 of file sqlite3.c.

#define YYWILDCARD   70

Definition at line 123444 of file sqlite3.c.

Typedef Documentation

typedef unsigned bft

Definition at line 14797 of file sqlite3.c.

typedef u64 Bitmask

Definition at line 12111 of file sqlite3.c.

typedef unsigned Bool

Definition at line 14538 of file sqlite3.c.

typedef unsigned char etByte

Definition at line 21396 of file sqlite3.c.

typedef u16 ht_slot

Definition at line 49389 of file sqlite3.c.

typedef INT16_TYPE i16

Definition at line 8958 of file sqlite3.c.

typedef sqlite_int64 i64

Definition at line 8954 of file sqlite3.c.

typedef INT8_TYPE i8

Definition at line 8960 of file sqlite3.c.

typedef struct KeyClass KeyClass

Definition at line 9281 of file sqlite3.c.

typedef INT16_TYPE LogEst

Definition at line 9005 of file sqlite3.c.

typedef u32 Pgno

Definition at line 10121 of file sqlite3.c.

typedef int(* RecordCompare) (int, const void *, UnpackedRecord *)

Definition at line 10010 of file sqlite3.c.

typedef int(* SorterCompare) (SortSubtask *, int *, const void *, int, const void *, int)

Definition at line 78223 of file sqlite3.c.

typedef struct sqlite3_blob sqlite3_blob

Definition at line 5974 of file sqlite3.c.

typedef int(* sqlite3_callback) (void *, int, char **, char **)

Definition at line 528 of file sqlite3.c.

typedef void(* sqlite3_destructor_type) (void *)

Definition at line 4700 of file sqlite3.c.

Definition at line 467 of file sqlite3.c.

Definition at line 6917 of file sqlite3.c.

typedef double sqlite3_rtree_dbl

Definition at line 7954 of file sqlite3.c.

typedef struct sqlite3_stmt sqlite3_stmt

Definition at line 3302 of file sqlite3.c.

typedef void(* sqlite3_syscall_ptr) (void)

Definition at line 1375 of file sqlite3.c.

Definition at line 468 of file sqlite3.c.

typedef int(* sqlite3_xauth) (void *, int, const char *, const char *, const char *, const char *)

Definition at line 10983 of file sqlite3.c.

typedef long long int sqlite_int64

Definition at line 464 of file sqlite3.c.

typedef unsigned long long int sqlite_uint64

Definition at line 465 of file sqlite3.c.

typedef struct TreeView TreeView

Definition at line 9299 of file sqlite3.c.

typedef u32 tRowcnt

Definition at line 8979 of file sqlite3.c.

typedef UINT16_TYPE u16

Definition at line 8957 of file sqlite3.c.

typedef UINT32_TYPE u32

Definition at line 8956 of file sqlite3.c.

typedef sqlite_uint64 u64

Definition at line 8955 of file sqlite3.c.

typedef UINT8_TYPE u8

Definition at line 8959 of file sqlite3.c.

typedef unsigned int yDbMask

Definition at line 12475 of file sqlite3.c.

typedef i16 ynVar

Definition at line 11857 of file sqlite3.c.

Function Documentation

IOMETHODS ( posixIoFinder  ,
posixIoMethods  ,
IOMETHODS(  3,
unixClose  ,
unixLock  ,
unixUnlock  ,
unixCheckReservedLock  ,
unixShmMap   
)

Definition at line 30489 of file sqlite3.c.

30610  {
30611  static const struct Mapping {
30612  const char *zFilesystem; /* Filesystem type name */
30613  const sqlite3_io_methods *pMethods; /* Appropriate locking method */
30614  } aMap[] = {
30615  { "hfs", &posixIoMethods },
30616  { "ufs", &posixIoMethods },
30617  { "afpfs", &afpIoMethods },
30618  { "smbfs", &afpIoMethods },
30619  { "webdav", &nolockIoMethods },
30620  { 0, 0 }
30621  };
30622  int i;
30623  struct statfs fsInfo;
30624  struct flock lockInfo;
30625 
30626  if( !filePath ){
30627  /* If filePath==NULL that means we are dealing with a transient file
30628  ** that does not need to be locked. */
30629  return &nolockIoMethods;
30630  }
30631  if( statfs(filePath, &fsInfo) != -1 ){
30632  if( fsInfo.f_flags & MNT_RDONLY ){
30633  return &nolockIoMethods;
30634  }
30635  for(i=0; aMap[i].zFilesystem; i++){
30636  if( strcmp(fsInfo.f_fstypename, aMap[i].zFilesystem)==0 ){
30637  return aMap[i].pMethods;
30638  }
30639  }
30640  }
30641 
30642  /* Default case. Handles, amongst others, "nfs".
30643  ** Test byte-range lock using fcntl(). If the call succeeds,
30644  ** assume that the file-system supports POSIX style locks.
30645  */
30646  lockInfo.l_len = 1;
30647  lockInfo.l_start = 0;
30648  lockInfo.l_whence = SEEK_SET;
30649  lockInfo.l_type = F_RDLCK;
30650  if( osFcntl(pNew->h, F_GETLK, &lockInfo)!=-1 ) {
30651  if( strcmp(fsInfo.f_fstypename, "nfs")==0 ){
30652  return &nfsIoMethods;
30653  } else {
30654  return &posixIoMethods;
30655  }
30656  }else{
30657  return &dotlockIoMethods;
30658  }
30659 }
30660 static const sqlite3_io_methods
30661  *(*const autolockIoFinder)(const char*,unixFile*) = autolockIoFinderImpl;
30662 
30663 #endif /* defined(__APPLE__) && SQLITE_ENABLE_LOCKING_STYLE */
30664 
30665 #if OS_VXWORKS
30666 /*
30667 ** This "finder" function for VxWorks checks to see if posix advisory
30668 ** locking works. If it does, then that is what is used. If it does not
30669 ** work, then fallback to named semaphore locking.
30670 */
30671 static const sqlite3_io_methods *vxworksIoFinderImpl(
30672  const char *filePath, /* name of the database file */
30673  unixFile *pNew /* the open file object */
30674 ){
30675  struct flock lockInfo;
30676 
30677  if( !filePath ){
30678  /* If filePath==NULL that means we are dealing with a transient file
30679  ** that does not need to be locked. */
30680  return &nolockIoMethods;
30681  }
30682 
30683  /* Test if fcntl() is supported and use POSIX style locks.
30684  ** Otherwise fall back to the named semaphore method.
30685  */
30686  lockInfo.l_len = 1;
30687  lockInfo.l_start = 0;
30688  lockInfo.l_whence = SEEK_SET;
30689  lockInfo.l_type = F_RDLCK;
30690  if( osFcntl(pNew->h, F_GETLK, &lockInfo)!=-1 ) {
30691  return &posixIoMethods;
30692  }else{
30693  return &semIoMethods;
30694  }
30695 }
30696 static const sqlite3_io_methods
30697  *(*const vxworksIoFinder)(const char*,unixFile*) = vxworksIoFinderImpl;
30698 
30699 #endif /* OS_VXWORKS */
30700 
30701 /*
30702 ** An abstract type for a pointer to an IO method finder function:
30703 */
30704 typedef const sqlite3_io_methods *(*finder_type)(const char*,unixFile*);
30705 
30706 
30707 /****************************************************************************
30708 **************************** sqlite3_vfs methods ****************************
30709 **
30710 ** This division contains the implementation of methods on the
30711 ** sqlite3_vfs object.
30712 */
30713 
30714 /*
30715 ** Initialize the contents of the unixFile structure pointed to by pId.
30716 */
30717 static int fillInUnixFile(
30718  sqlite3_vfs *pVfs, /* Pointer to vfs object */
30719  int h, /* Open file descriptor of file being opened */
30720  sqlite3_file *pId, /* Write to the unixFile structure here */
30721  const char *zFilename, /* Name of the file being opened */
30722  int ctrlFlags /* Zero or more UNIXFILE_* values */
30723 ){
30724  const sqlite3_io_methods *pLockingStyle;
30725  unixFile *pNew = (unixFile *)pId;
30726  int rc = SQLITE_OK;
30727 
30728  assert( pNew->pInode==NULL );
30729 
30730  /* Usually the path zFilename should not be a relative pathname. The
30731  ** exception is when opening the proxy "conch" file in builds that
30732  ** include the special Apple locking styles.
30733  */
30734 #if defined(__APPLE__) && SQLITE_ENABLE_LOCKING_STYLE
30735  assert( zFilename==0 || zFilename[0]=='/'
30736  || pVfs->pAppData==(void*)&autolockIoFinder );
30737 #else
30738  assert( zFilename==0 || zFilename[0]=='/' );
30739 #endif
30740 
30741  /* No locking occurs in temporary files */
30742  assert( zFilename!=0 || (ctrlFlags & UNIXFILE_NOLOCK)!=0 );
30743 
30744  OSTRACE(("OPEN %-3d %s\n", h, zFilename));
30745  pNew->h = h;
30746  pNew->pVfs = pVfs;
30747  pNew->zPath = zFilename;
30748  pNew->ctrlFlags = (u8)ctrlFlags;
30749 #if SQLITE_MAX_MMAP_SIZE>0
30750  pNew->mmapSizeMax = sqlite3GlobalConfig.szMmap;
30751 #endif
30752  if( sqlite3_uri_boolean(((ctrlFlags & UNIXFILE_URI) ? zFilename : 0),
30753  "psow", SQLITE_POWERSAFE_OVERWRITE) ){
30754  pNew->ctrlFlags |= UNIXFILE_PSOW;
30755  }
30756  if( strcmp(pVfs->zName,"unix-excl")==0 ){
30757  pNew->ctrlFlags |= UNIXFILE_EXCL;
30758  }
30759 
30760 #if OS_VXWORKS
30761  pNew->pId = vxworksFindFileId(zFilename);
30762  if( pNew->pId==0 ){
30763  ctrlFlags |= UNIXFILE_NOLOCK;
30764  rc = SQLITE_NOMEM;
30765  }
30766 #endif
30767 
30768  if( ctrlFlags & UNIXFILE_NOLOCK ){
30769  pLockingStyle = &nolockIoMethods;
30770  }else{
30771  pLockingStyle = (**(finder_type*)pVfs->pAppData)(zFilename, pNew);
30772 #if SQLITE_ENABLE_LOCKING_STYLE
30773  /* Cache zFilename in the locking context (AFP and dotlock override) for
30774  ** proxyLock activation is possible (remote proxy is based on db name)
30775  ** zFilename remains valid until file is closed, to support */
30776  pNew->lockingContext = (void*)zFilename;
30777 #endif
30778  }
30779 
30780  if( pLockingStyle == &posixIoMethods
30781 #if defined(__APPLE__) && SQLITE_ENABLE_LOCKING_STYLE
30782  || pLockingStyle == &nfsIoMethods
30783 #endif
30784  ){
30785  unixEnterMutex();
30786  rc = findInodeInfo(pNew, &pNew->pInode);
30787  if( rc!=SQLITE_OK ){
30788  /* If an error occurred in findInodeInfo(), close the file descriptor
30789  ** immediately, before releasing the mutex. findInodeInfo() may fail
30790  ** in two scenarios:
30791  **
30792  ** (a) A call to fstat() failed.
30793  ** (b) A malloc failed.
30794  **
30795  ** Scenario (b) may only occur if the process is holding no other
30796  ** file descriptors open on the same file. If there were other file
30797  ** descriptors on this file, then no malloc would be required by
30798  ** findInodeInfo(). If this is the case, it is quite safe to close
30799  ** handle h - as it is guaranteed that no posix locks will be released
30800  ** by doing so.
30801  **
30802  ** If scenario (a) caused the error then things are not so safe. The
30803  ** implicit assumption here is that if fstat() fails, things are in
30804  ** such bad shape that dropping a lock or two doesn't matter much.
30805  */
30806  robust_close(pNew, h, __LINE__);
30807  h = -1;
30808  }
30809  unixLeaveMutex();
30810  }
30811 
30812 #if SQLITE_ENABLE_LOCKING_STYLE && defined(__APPLE__)
30813  else if( pLockingStyle == &afpIoMethods ){
30814  /* AFP locking uses the file path so it needs to be included in
30815  ** the afpLockingContext.
30816  */
30817  afpLockingContext *pCtx;
30818  pNew->lockingContext = pCtx = sqlite3_malloc( sizeof(*pCtx) );
30819  if( pCtx==0 ){
30820  rc = SQLITE_NOMEM;
30821  }else{
30822  /* NB: zFilename exists and remains valid until the file is closed
30823  ** according to requirement F11141. So we do not need to make a
30824  ** copy of the filename. */
30825  pCtx->dbPath = zFilename;
30826  pCtx->reserved = 0;
30827  srandomdev();
30828  unixEnterMutex();
30829  rc = findInodeInfo(pNew, &pNew->pInode);
30830  if( rc!=SQLITE_OK ){
30832  robust_close(pNew, h, __LINE__);
30833  h = -1;
30834  }
30835  unixLeaveMutex();
30836  }
30837  }
30838 #endif
30839 
30840  else if( pLockingStyle == &dotlockIoMethods ){
30841  /* Dotfile locking uses the file path so it needs to be included in
30842  ** the dotlockLockingContext
30843  */
30844  char *zLockFile;
30845  int nFilename;
30846  assert( zFilename!=0 );
30847  nFilename = (int)strlen(zFilename) + 6;
30848  zLockFile = (char *)sqlite3_malloc(nFilename);
30849  if( zLockFile==0 ){
30850  rc = SQLITE_NOMEM;
30851  }else{
30852  sqlite3_snprintf(nFilename, zLockFile, "%s" DOTLOCK_SUFFIX, zFilename);
30853  }
30854  pNew->lockingContext = zLockFile;
30855  }
30856 
30857 #if OS_VXWORKS
30858  else if( pLockingStyle == &semIoMethods ){
30859  /* Named semaphore locking uses the file path so it needs to be
30860  ** included in the semLockingContext
30861  */
30862  unixEnterMutex();
30863  rc = findInodeInfo(pNew, &pNew->pInode);
30864  if( (rc==SQLITE_OK) && (pNew->pInode->pSem==NULL) ){
30865  char *zSemName = pNew->pInode->aSemName;
30866  int n;
30867  sqlite3_snprintf(MAX_PATHNAME, zSemName, "/%s.sem",
30868  pNew->pId->zCanonicalName);
30869  for( n=1; zSemName[n]; n++ )
30870  if( zSemName[n]=='/' ) zSemName[n] = '_';
30871  pNew->pInode->pSem = sem_open(zSemName, O_CREAT, 0666, 1);
30872  if( pNew->pInode->pSem == SEM_FAILED ){
30873  rc = SQLITE_NOMEM;
30874  pNew->pInode->aSemName[0] = '\0';
30875  }
30876  }
30877  unixLeaveMutex();
30878  }
30879 #endif
30880 
30881  storeLastErrno(pNew, 0);
30882 #if OS_VXWORKS
30883  if( rc!=SQLITE_OK ){
30884  if( h>=0 ) robust_close(pNew, h, __LINE__);
30885  h = -1;
30886  osUnlink(zFilename);
30887  pNew->ctrlFlags |= UNIXFILE_DELETE;
30888  }
30889 #endif
30890  if( rc!=SQLITE_OK ){
30891  if( h>=0 ) robust_close(pNew, h, __LINE__);
30892  }else{
30893  pNew->pMethod = pLockingStyle;
30894  OpenCounter(+1);
30895  verifyDbFile(pNew);
30896  }
30897  return rc;
30898 }
#define OpenCounter(X)
Definition: sqlite3.c:25728
#define UNIXFILE_DELETE
Definition: sqlite3.c:25517
#define osFcntl
#define SQLITE_NOMEM
Definition: sqlite3.c:619
SQLITE_API char *SQLITE_CDECL sqlite3_snprintf(int, char *, const char *,...)
Definition: sqlite3.c:22371
unsigned short int ctrlFlags
Definition: sqlite3.c:25450
#define DOTLOCK_SUFFIX
Definition: sqlite3.c:27532
#define UNIXFILE_EXCL
Definition: sqlite3.c:25508
UINT8_TYPE u8
Definition: sqlite3.c:8959
SQLITE_API void *SQLITE_STDCALL sqlite3_malloc(int)
Definition: sqlite3.c:20854
#define sqlite3GlobalConfig
Definition: sqlite3.c:9238
unixInodeInfo * pInode
Definition: sqlite3.c:25447
#define OSTRACE(X)
Definition: sqlite3.c:25566
const char * zName
Definition: sqlite3.c:1381
sqlite3_io_methods const * pMethod
Definition: sqlite3.c:25445
sqlite3_vfs * pVfs
Definition: sqlite3.c:25446
SQLITE_API int SQLITE_STDCALL sqlite3_uri_boolean(const char *zFile, const char *zParam, int bDefault)
Definition: sqlite3.c:131688
#define UNIXFILE_PSOW
Definition: sqlite3.c:25516
const char * zPath
Definition: sqlite3.c:25454
#define osUnlink
#define SQLITE_ENABLE_LOCKING_STYLE
Definition: sqlite3.c:25329
void * pAppData
Definition: sqlite3.c:1382
#define SQLITE_POWERSAFE_OVERWRITE
Definition: sqlite3.c:8352
#define MAX_PATHNAME
Definition: sqlite3.c:25409
#define UNIXFILE_NOLOCK
Definition: sqlite3.c:25519
#define UNIXFILE_URI
Definition: sqlite3.c:25518
void * lockingContext
Definition: sqlite3.c:25452
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_API void SQLITE_STDCALL sqlite3_free(void *)
Definition: sqlite3.c:21010
int sqlite2BtreeKeyCompare ( BtCursor ,
const void *  ,
int  ,
int  ,
int *   
)
SQLITE_API void *SQLITE_STDCALL sqlite3_aggregate_context ( sqlite3_context p,
int  nBytes 
)

Definition at line 69712 of file sqlite3.c.

References sqlite3_value::flags, sqlite3_context::pMem, and sqlite3_value::z.

69712  {
69713  assert( p && p->pFunc && p->pFunc->xStep );
69714  assert( sqlite3_mutex_held(p->pOut->db->mutex) );
69715  testcase( nByte<0 );
69716  if( (p->pMem->flags & MEM_Agg)==0 ){
69717  return createAggContext(p, nByte);
69718  }else{
69719  return (void*)p->pMem->z;
69720  }
69721 }
u16 flags
Definition: sqlite3.c:14672
FuncDef * pFunc
Definition: sqlite3.c:14773
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define MEM_Agg
Definition: sqlite3.c:14722
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
void(* xStep)(sqlite3_context *, int, sqlite3_value **)
Definition: sqlite3.c:11208
char * z
Definition: sqlite3.c:14675
#define testcase(X)
Definition: sqlite3.c:8458
sqlite3 * db
Definition: sqlite3.c:14680
SQLITE_API int SQLITE_STDCALL sqlite3_aggregate_count ( sqlite3_context p)

Definition at line 69803 of file sqlite3.c.

References sqlite3_value::n, and sqlite3_context::pMem.

69803  {
69804  assert( p && p->pMem && p->pFunc && p->pFunc->xStep );
69805  return p->pMem->n;
69806 }
FuncDef * pFunc
Definition: sqlite3.c:14773
int n
Definition: sqlite3.c:14674
void(* xStep)(sqlite3_context *, int, sqlite3_value **)
Definition: sqlite3.c:11208
SQLITE_API int SQLITE_STDCALL sqlite3_auto_extension ( void(*)(void)  xEntryPoint)

Definition at line 103011 of file sqlite3.c.

References sqlite3_initialize(), sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3MutexAlloc().

103011  {
103012  int rc = SQLITE_OK;
103013 #ifndef SQLITE_OMIT_AUTOINIT
103014  rc = sqlite3_initialize();
103015  if( rc ){
103016  return rc;
103017  }else
103018 #endif
103019  {
103020  int i;
103021 #if SQLITE_THREADSAFE
103023 #endif
103024  wsdAutoextInit;
103025  sqlite3_mutex_enter(mutex);
103026  for(i=0; i<wsdAutoext.nExt; i++){
103027  if( wsdAutoext.aExt[i]==xInit ) break;
103028  }
103029  if( i==wsdAutoext.nExt ){
103030  int nByte = (wsdAutoext.nExt+1)*sizeof(wsdAutoext.aExt[0]);
103031  void (**aNew)(void);
103032  aNew = sqlite3_realloc(wsdAutoext.aExt, nByte);
103033  if( aNew==0 ){
103034  rc = SQLITE_NOMEM;
103035  }else{
103036  wsdAutoext.aExt = aNew;
103037  wsdAutoext.aExt[wsdAutoext.nExt] = xInit;
103038  wsdAutoext.nExt++;
103039  }
103040  }
103041  sqlite3_mutex_leave(mutex);
103042  assert( (rc&0xff)==rc );
103043  return rc;
103044  }
103045 }
#define SQLITE_MUTEX_STATIC_MASTER
Definition: sqlite3.c:6468
#define SQLITE_NOMEM
Definition: sqlite3.c:619
SQLITE_API void *SQLITE_STDCALL sqlite3_realloc(void *, int)
Definition: sqlite3.c:21119
SQLITE_API int SQLITE_STDCALL sqlite3_initialize(void)
Definition: sqlite3.c:128111
#define wsdAutoextInit
Definition: sqlite3.c:103002
SQLITE_PRIVATE sqlite3_mutex * sqlite3MutexAlloc(int)
Definition: sqlite3.c:19193
#define SQLITE_OK
Definition: sqlite3.c:611
#define wsdAutoext
Definition: sqlite3.c:103003
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_backup_finish ( sqlite3_backup p)

Definition at line 62930 of file sqlite3.c.

References sqlite3_backup::isAttached, sqlite3::mutex, Btree::nBackup, sqlite3_backup::pDest, sqlite3_backup::pDestDb, sqlite3_backup::pNext, sqlite3_backup::pSrc, sqlite3_backup::pSrcDb, sqlite3_backup::rc, sqlite3_free(), sqlite3_mutex_enter(), sqlite3BtreeEnter(), sqlite3BtreeLeave(), sqlite3BtreePager(), sqlite3BtreeRollback(), sqlite3Error(), sqlite3LeaveMutexAndCloseZombie(), and sqlite3PagerBackupPtr().

Referenced by sqlite3BtreeCopyFile().

62930  {
62931  sqlite3_backup **pp; /* Ptr to head of pagers backup list */
62932  sqlite3 *pSrcDb; /* Source database connection */
62933  int rc; /* Value to return */
62934 
62935  /* Enter the mutexes */
62936  if( p==0 ) return SQLITE_OK;
62937  pSrcDb = p->pSrcDb;
62938  sqlite3_mutex_enter(pSrcDb->mutex);
62939  sqlite3BtreeEnter(p->pSrc);
62940  if( p->pDestDb ){
62942  }
62943 
62944  /* Detach this backup from the source pager. */
62945  if( p->pDestDb ){
62946  p->pSrc->nBackup--;
62947  }
62948  if( p->isAttached ){
62950  while( *pp!=p ){
62951  pp = &(*pp)->pNext;
62952  }
62953  *pp = p->pNext;
62954  }
62955 
62956  /* If a transaction is still open on the Btree, roll it back. */
62958 
62959  /* Set the error code of the destination database handle. */
62960  rc = (p->rc==SQLITE_DONE) ? SQLITE_OK : p->rc;
62961  if( p->pDestDb ){
62962  sqlite3Error(p->pDestDb, rc);
62963 
62964  /* Exit the mutexes and free the backup context structure. */
62966  }
62967  sqlite3BtreeLeave(p->pSrc);
62968  if( p->pDestDb ){
62969  /* EVIDENCE-OF: R-64852-21591 The sqlite3_backup object is created by a
62970  ** call to sqlite3_backup_init() and is destroyed by a call to
62971  ** sqlite3_backup_finish(). */
62972  sqlite3_free(p);
62973  }
62975  return rc;
62976 }
SQLITE_PRIVATE struct Pager * sqlite3BtreePager(Btree *)
Definition: sqlite3.c:61436
Btree * pSrc
Definition: sqlite3.c:62359
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_PRIVATE sqlite3_backup ** sqlite3PagerBackupPtr(Pager *)
Definition: sqlite3.c:48722
SQLITE_PRIVATE void sqlite3BtreeEnter(Btree *)
Definition: sqlite3.c:52850
SQLITE_PRIVATE void sqlite3LeaveMutexAndCloseZombie(sqlite3 *)
Definition: sqlite3.c:129019
#define SQLITE_DONE
Definition: sqlite3.c:642
SQLITE_PRIVATE void sqlite3Error(sqlite3 *, int)
Definition: sqlite3.c:23556
sqlite3 * pDestDb
Definition: sqlite3.c:62352
SQLITE_PRIVATE void sqlite3BtreeLeave(Btree *)
Definition: sqlite3.c:52922
sqlite3 * pSrcDb
Definition: sqlite3.c:62358
sqlite3_backup * pNext
Definition: sqlite3.c:62370
Btree * pDest
Definition: sqlite3.c:62353
int nBackup
Definition: sqlite3.c:52466
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE int sqlite3BtreeRollback(Btree *, int, int)
Definition: sqlite3.c:56753
SQLITE_API void SQLITE_STDCALL sqlite3_free(void *)
Definition: sqlite3.c:21010
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API sqlite3_backup *SQLITE_STDCALL sqlite3_backup_init ( sqlite3 pDest,
const char *  zDestName,
sqlite3 pSource,
const char *  zSourceName 
)

Definition at line 62477 of file sqlite3.c.

References sqlite3_backup::iNext, sqlite3_backup::isAttached, sqlite3::mutex, Btree::nBackup, sqlite3_backup::pDest, sqlite3_backup::pDestDb, sqlite3_backup::pSrc, sqlite3_backup::pSrcDb, sqlite3_free(), sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3Error(), sqlite3ErrorWithMsg(), and sqlite3MallocZero().

62482  {
62483  sqlite3_backup *p; /* Value to return */
62484 
62485 #ifdef SQLITE_ENABLE_API_ARMOR
62486  if( !sqlite3SafetyCheckOk(pSrcDb)||!sqlite3SafetyCheckOk(pDestDb) ){
62487  (void)SQLITE_MISUSE_BKPT;
62488  return 0;
62489  }
62490 #endif
62491 
62492  /* Lock the source database handle. The destination database
62493  ** handle is not locked in this routine, but it is locked in
62494  ** sqlite3_backup_step(). The user is required to ensure that no
62495  ** other thread accesses the destination handle for the duration
62496  ** of the backup operation. Any attempt to use the destination
62497  ** database connection while a backup is in progress may cause
62498  ** a malfunction or a deadlock.
62499  */
62500  sqlite3_mutex_enter(pSrcDb->mutex);
62501  sqlite3_mutex_enter(pDestDb->mutex);
62502 
62503  if( pSrcDb==pDestDb ){
62505  pDestDb, SQLITE_ERROR, "source and destination must be distinct"
62506  );
62507  p = 0;
62508  }else {
62509  /* Allocate space for a new sqlite3_backup object...
62510  ** EVIDENCE-OF: R-64852-21591 The sqlite3_backup object is created by a
62511  ** call to sqlite3_backup_init() and is destroyed by a call to
62512  ** sqlite3_backup_finish(). */
62514  if( !p ){
62515  sqlite3Error(pDestDb, SQLITE_NOMEM);
62516  }
62517  }
62518 
62519  /* If the allocation succeeded, populate the new object. */
62520  if( p ){
62521  p->pSrc = findBtree(pDestDb, pSrcDb, zSrcDb);
62522  p->pDest = findBtree(pDestDb, pDestDb, zDestDb);
62523  p->pDestDb = pDestDb;
62524  p->pSrcDb = pSrcDb;
62525  p->iNext = 1;
62526  p->isAttached = 0;
62527 
62528  if( 0==p->pSrc || 0==p->pDest
62529  || setDestPgsz(p)==SQLITE_NOMEM
62530  || checkReadTransaction(pDestDb, p->pDest)!=SQLITE_OK
62531  ){
62532  /* One (or both) of the named databases did not exist or an OOM
62533  ** error was hit. Or there is a transaction open on the destination
62534  ** database. The error has already been written into the pDestDb
62535  ** handle. All that is left to do here is free the sqlite3_backup
62536  ** structure. */
62537  sqlite3_free(p);
62538  p = 0;
62539  }
62540  }
62541  if( p ){
62542  p->pSrc->nBackup++;
62543  }
62544 
62545  sqlite3_mutex_leave(pDestDb->mutex);
62546  sqlite3_mutex_leave(pSrcDb->mutex);
62547  return p;
62548 }
#define SQLITE_NOMEM
Definition: sqlite3.c:619
Btree * pSrc
Definition: sqlite3.c:62359
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_PRIVATE void sqlite3Error(sqlite3 *, int)
Definition: sqlite3.c:23556
#define SQLITE_ERROR
Definition: sqlite3.c:613
sqlite3 * pDestDb
Definition: sqlite3.c:62352
SQLITE_PRIVATE void * sqlite3MallocZero(u64)
Definition: sqlite3.c:21137
SQLITE_PRIVATE void sqlite3ErrorWithMsg(sqlite3 *, int, const char *,...)
Definition: sqlite3.c:23583
sqlite3 * pSrcDb
Definition: sqlite3.c:62358
Btree * pDest
Definition: sqlite3.c:62353
int nBackup
Definition: sqlite3.c:52466
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_free(void *)
Definition: sqlite3.c:21010
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_backup_pagecount ( sqlite3_backup p)

Definition at line 62996 of file sqlite3.c.

References sqlite3_backup::nPagecount.

62996  {
62997 #ifdef SQLITE_ENABLE_API_ARMOR
62998  if( p==0 ){
62999  (void)SQLITE_MISUSE_BKPT;
63000  return 0;
63001  }
63002 #endif
63003  return p->nPagecount;
63004 }
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_API int SQLITE_STDCALL sqlite3_backup_remaining ( sqlite3_backup p)

Definition at line 62982 of file sqlite3.c.

References sqlite3_backup::nRemaining.

62982  {
62983 #ifdef SQLITE_ENABLE_API_ARMOR
62984  if( p==0 ){
62985  (void)SQLITE_MISUSE_BKPT;
62986  return 0;
62987  }
62988 #endif
62989  return p->nRemaining;
62990 }
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_API int SQLITE_STDCALL sqlite3_backup_step ( sqlite3_backup p,
int  nPage 
)

Definition at line 62685 of file sqlite3.c.

References sqlite3_backup::bDestLocked, sqlite3_backup::iDestSchema, sqlite3_backup::iNext, BtShared::inTransaction, sqlite3_backup::isAttached, sqlite3::mutex, sqlite3_backup::nPagecount, sqlite3_backup::nRemaining, Btree::pBt, sqlite3_backup::pDest, sqlite3_backup::pDestDb, sqlite3_backup::pSrc, sqlite3_backup::pSrcDb, sqlite3_backup::rc, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3BtreeBeginTrans(), sqlite3BtreeCommitPhaseOne(), sqlite3BtreeCommitPhaseTwo(), sqlite3BtreeEnter(), sqlite3BtreeGetMeta(), sqlite3BtreeGetPageSize(), sqlite3BtreeIsInReadTrans(), sqlite3BtreeLastPage(), sqlite3BtreeLeave(), sqlite3BtreeNewDb(), sqlite3BtreePager(), sqlite3BtreeSetVersion(), sqlite3BtreeUpdateMeta(), sqlite3PagerAcquire(), sqlite3PagerCommitPhaseOne(), sqlite3PagerFile(), sqlite3PagerGetJournalMode(), sqlite3PagerPagecount(), sqlite3PagerSync(), sqlite3PagerTruncateImage(), sqlite3PagerUnref(), sqlite3PagerWrite(), and sqlite3ResetAllSchemasOfConnection().

Referenced by sqlite3BtreeCopyFile().

62685  {
62686  int rc;
62687  int destMode; /* Destination journal mode */
62688  int pgszSrc = 0; /* Source page size */
62689  int pgszDest = 0; /* Destination page size */
62690 
62691 #ifdef SQLITE_ENABLE_API_ARMOR
62692  if( p==0 ) return SQLITE_MISUSE_BKPT;
62693 #endif
62695  sqlite3BtreeEnter(p->pSrc);
62696  if( p->pDestDb ){
62698  }
62699 
62700  rc = p->rc;
62701  if( !isFatalError(rc) ){
62702  Pager * const pSrcPager = sqlite3BtreePager(p->pSrc); /* Source pager */
62703  Pager * const pDestPager = sqlite3BtreePager(p->pDest); /* Dest pager */
62704  int ii; /* Iterator variable */
62705  int nSrcPage = -1; /* Size of source db in pages */
62706  int bCloseTrans = 0; /* True if src db requires unlocking */
62707 
62708  /* If the source pager is currently in a write-transaction, return
62709  ** SQLITE_BUSY immediately.
62710  */
62711  if( p->pDestDb && p->pSrc->pBt->inTransaction==TRANS_WRITE ){
62712  rc = SQLITE_BUSY;
62713  }else{
62714  rc = SQLITE_OK;
62715  }
62716 
62717  /* Lock the destination database, if it is not locked already. */
62718  if( SQLITE_OK==rc && p->bDestLocked==0
62719  && SQLITE_OK==(rc = sqlite3BtreeBeginTrans(p->pDest, 2))
62720  ){
62721  p->bDestLocked = 1;
62723  }
62724 
62725  /* If there is no open read-transaction on the source database, open
62726  ** one now. If a transaction is opened here, then it will be closed
62727  ** before this function exits.
62728  */
62729  if( rc==SQLITE_OK && 0==sqlite3BtreeIsInReadTrans(p->pSrc) ){
62730  rc = sqlite3BtreeBeginTrans(p->pSrc, 0);
62731  bCloseTrans = 1;
62732  }
62733 
62734  /* Do not allow backup if the destination database is in WAL mode
62735  ** and the page sizes are different between source and destination */
62736  pgszSrc = sqlite3BtreeGetPageSize(p->pSrc);
62737  pgszDest = sqlite3BtreeGetPageSize(p->pDest);
62739  if( SQLITE_OK==rc && destMode==PAGER_JOURNALMODE_WAL && pgszSrc!=pgszDest ){
62740  rc = SQLITE_READONLY;
62741  }
62742 
62743  /* Now that there is a read-lock on the source database, query the
62744  ** source pager for the number of pages in the database.
62745  */
62746  nSrcPage = (int)sqlite3BtreeLastPage(p->pSrc);
62747  assert( nSrcPage>=0 );
62748  for(ii=0; (nPage<0 || ii<nPage) && p->iNext<=(Pgno)nSrcPage && !rc; ii++){
62749  const Pgno iSrcPg = p->iNext; /* Source page number */
62750  if( iSrcPg!=PENDING_BYTE_PAGE(p->pSrc->pBt) ){
62751  DbPage *pSrcPg; /* Source page object */
62752  rc = sqlite3PagerAcquire(pSrcPager, iSrcPg, &pSrcPg,
62754  if( rc==SQLITE_OK ){
62755  rc = backupOnePage(p, iSrcPg, sqlite3PagerGetData(pSrcPg), 0);
62756  sqlite3PagerUnref(pSrcPg);
62757  }
62758  }
62759  p->iNext++;
62760  }
62761  if( rc==SQLITE_OK ){
62762  p->nPagecount = nSrcPage;
62763  p->nRemaining = nSrcPage+1-p->iNext;
62764  if( p->iNext>(Pgno)nSrcPage ){
62765  rc = SQLITE_DONE;
62766  }else if( !p->isAttached ){
62767  attachBackupObject(p);
62768  }
62769  }
62770 
62771  /* Update the schema version field in the destination database. This
62772  ** is to make sure that the schema-version really does change in
62773  ** the case where the source and destination databases have the
62774  ** same schema version.
62775  */
62776  if( rc==SQLITE_DONE ){
62777  if( nSrcPage==0 ){
62778  rc = sqlite3BtreeNewDb(p->pDest);
62779  nSrcPage = 1;
62780  }
62781  if( rc==SQLITE_OK || rc==SQLITE_DONE ){
62782  rc = sqlite3BtreeUpdateMeta(p->pDest,1,p->iDestSchema+1);
62783  }
62784  if( rc==SQLITE_OK ){
62785  if( p->pDestDb ){
62787  }
62788  if( destMode==PAGER_JOURNALMODE_WAL ){
62789  rc = sqlite3BtreeSetVersion(p->pDest, 2);
62790  }
62791  }
62792  if( rc==SQLITE_OK ){
62793  int nDestTruncate;
62794  /* Set nDestTruncate to the final number of pages in the destination
62795  ** database. The complication here is that the destination page
62796  ** size may be different to the source page size.
62797  **
62798  ** If the source page size is smaller than the destination page size,
62799  ** round up. In this case the call to sqlite3OsTruncate() below will
62800  ** fix the size of the file. However it is important to call
62801  ** sqlite3PagerTruncateImage() here so that any pages in the
62802  ** destination file that lie beyond the nDestTruncate page mark are
62803  ** journalled by PagerCommitPhaseOne() before they are destroyed
62804  ** by the file truncation.
62805  */
62806  assert( pgszSrc==sqlite3BtreeGetPageSize(p->pSrc) );
62807  assert( pgszDest==sqlite3BtreeGetPageSize(p->pDest) );
62808  if( pgszSrc<pgszDest ){
62809  int ratio = pgszDest/pgszSrc;
62810  nDestTruncate = (nSrcPage+ratio-1)/ratio;
62811  if( nDestTruncate==(int)PENDING_BYTE_PAGE(p->pDest->pBt) ){
62812  nDestTruncate--;
62813  }
62814  }else{
62815  nDestTruncate = nSrcPage * (pgszSrc/pgszDest);
62816  }
62817  assert( nDestTruncate>0 );
62818 
62819  if( pgszSrc<pgszDest ){
62820  /* If the source page-size is smaller than the destination page-size,
62821  ** two extra things may need to happen:
62822  **
62823  ** * The destination may need to be truncated, and
62824  **
62825  ** * Data stored on the pages immediately following the
62826  ** pending-byte page in the source database may need to be
62827  ** copied into the destination database.
62828  */
62829  const i64 iSize = (i64)pgszSrc * (i64)nSrcPage;
62830  sqlite3_file * const pFile = sqlite3PagerFile(pDestPager);
62831  Pgno iPg;
62832  int nDstPage;
62833  i64 iOff;
62834  i64 iEnd;
62835 
62836  assert( pFile );
62837  assert( nDestTruncate==0
62838  || (i64)nDestTruncate*(i64)pgszDest >= iSize || (
62839  nDestTruncate==(int)(PENDING_BYTE_PAGE(p->pDest->pBt)-1)
62840  && iSize>=PENDING_BYTE && iSize<=PENDING_BYTE+pgszDest
62841  ));
62842 
62843  /* This block ensures that all data required to recreate the original
62844  ** database has been stored in the journal for pDestPager and the
62845  ** journal synced to disk. So at this point we may safely modify
62846  ** the database file in any way, knowing that if a power failure
62847  ** occurs, the original database will be reconstructed from the
62848  ** journal file. */
62849  sqlite3PagerPagecount(pDestPager, &nDstPage);
62850  for(iPg=nDestTruncate; rc==SQLITE_OK && iPg<=(Pgno)nDstPage; iPg++){
62851  if( iPg!=PENDING_BYTE_PAGE(p->pDest->pBt) ){
62852  DbPage *pPg;
62853  rc = sqlite3PagerGet(pDestPager, iPg, &pPg);
62854  if( rc==SQLITE_OK ){
62855  rc = sqlite3PagerWrite(pPg);
62856  sqlite3PagerUnref(pPg);
62857  }
62858  }
62859  }
62860  if( rc==SQLITE_OK ){
62861  rc = sqlite3PagerCommitPhaseOne(pDestPager, 0, 1);
62862  }
62863 
62864  /* Write the extra pages and truncate the database file as required */
62865  iEnd = MIN(PENDING_BYTE + pgszDest, iSize);
62866  for(
62867  iOff=PENDING_BYTE+pgszSrc;
62868  rc==SQLITE_OK && iOff<iEnd;
62869  iOff+=pgszSrc
62870  ){
62871  PgHdr *pSrcPg = 0;
62872  const Pgno iSrcPg = (Pgno)((iOff/pgszSrc)+1);
62873  rc = sqlite3PagerGet(pSrcPager, iSrcPg, &pSrcPg);
62874  if( rc==SQLITE_OK ){
62875  u8 *zData = sqlite3PagerGetData(pSrcPg);
62876  rc = sqlite3OsWrite(pFile, zData, pgszSrc, iOff);
62877  }
62878  sqlite3PagerUnref(pSrcPg);
62879  }
62880  if( rc==SQLITE_OK ){
62881  rc = backupTruncateFile(pFile, iSize);
62882  }
62883 
62884  /* Sync the database file to disk. */
62885  if( rc==SQLITE_OK ){
62886  rc = sqlite3PagerSync(pDestPager, 0);
62887  }
62888  }else{
62889  sqlite3PagerTruncateImage(pDestPager, nDestTruncate);
62890  rc = sqlite3PagerCommitPhaseOne(pDestPager, 0, 0);
62891  }
62892 
62893  /* Finish committing the transaction to the destination database. */
62894  if( SQLITE_OK==rc
62895  && SQLITE_OK==(rc = sqlite3BtreeCommitPhaseTwo(p->pDest, 0))
62896  ){
62897  rc = SQLITE_DONE;
62898  }
62899  }
62900  }
62901 
62902  /* If bCloseTrans is true, then this function opened a read transaction
62903  ** on the source database. Close the read transaction here. There is
62904  ** no need to check the return values of the btree methods here, as
62905  ** "committing" a read-only transaction cannot fail.
62906  */
62907  if( bCloseTrans ){
62908  TESTONLY( int rc2 );
62909  TESTONLY( rc2 = ) sqlite3BtreeCommitPhaseOne(p->pSrc, 0);
62910  TESTONLY( rc2 |= ) sqlite3BtreeCommitPhaseTwo(p->pSrc, 0);
62911  assert( rc2==SQLITE_OK );
62912  }
62913 
62914  if( rc==SQLITE_IOERR_NOMEM ){
62915  rc = SQLITE_NOMEM;
62916  }
62917  p->rc = rc;
62918  }
62919  if( p->pDestDb ){
62921  }
62922  sqlite3BtreeLeave(p->pSrc);
62924  return rc;
62925 }
#define SQLITE_READONLY
Definition: sqlite3.c:620
SQLITE_PRIVATE struct Pager * sqlite3BtreePager(Btree *)
Definition: sqlite3.c:61436
SQLITE_PRIVATE int sqlite3PagerGetJournalMode(Pager *)
Definition: sqlite3.c:48686
SQLITE_PRIVATE void sqlite3ResetAllSchemasOfConnection(sqlite3 *)
Definition: sqlite3.c:91347
#define SQLITE_NOMEM
Definition: sqlite3.c:619
Btree * pSrc
Definition: sqlite3.c:62359
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_PRIVATE void sqlite3BtreeEnter(Btree *)
Definition: sqlite3.c:52850
#define TRANS_WRITE
Definition: sqlite3.c:52484
SQLITE_PRIVATE void sqlite3PagerUnref(DbPage *)
Definition: sqlite3.c:47134
UINT8_TYPE u8
Definition: sqlite3.c:8959
#define TESTONLY(X)
Definition: sqlite3.c:8469
#define PENDING_BYTE_PAGE(pBt)
Definition: sqlite3.c:52684
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
#define SQLITE_DONE
Definition: sqlite3.c:642
SQLITE_PRIVATE int sqlite3OsWrite(sqlite3_file *, const void *, int amt, i64 offset)
Definition: sqlite3.c:16537
SQLITE_PRIVATE void * sqlite3PagerGetData(DbPage *)
Definition: sqlite3.c:48534
sqlite3 * pDestDb
Definition: sqlite3.c:62352
#define SQLITE_IOERR_NOMEM
Definition: sqlite3.c:672
#define BTREE_SCHEMA_VERSION
Definition: sqlite3.c:9458
SQLITE_PRIVATE u32 sqlite3BtreeLastPage(Btree *)
Definition: sqlite3.c:54865
SQLITE_PRIVATE int sqlite3BtreeBeginTrans(Btree *, int)
Definition: sqlite3.c:55961
#define MIN(A, B)
Definition: sqlite3.c:8891
SQLITE_PRIVATE int sqlite3PagerCommitPhaseOne(Pager *, const char *zMaster, int)
Definition: sqlite3.c:47770
#define SQLITE_BUSY
Definition: sqlite3.c:617
SQLITE_PRIVATE int sqlite3BtreeSetVersion(Btree *pBt, int iVersion)
Definition: sqlite3.c:62270
SQLITE_PRIVATE void sqlite3PagerTruncateImage(Pager *, Pgno)
Definition: sqlite3.c:45501
SQLITE_PRIVATE void sqlite3BtreeLeave(Btree *)
Definition: sqlite3.c:52922
SQLITE_PRIVATE int sqlite3BtreeUpdateMeta(Btree *, int idx, u32 value)
Definition: sqlite3.c:61333
SQLITE_PRIVATE int sqlite3BtreeCommitPhaseTwo(Btree *, int)
Definition: sqlite3.c:56641
SQLITE_PRIVATE int sqlite3BtreeGetPageSize(Btree *)
Definition: sqlite3.c:55528
SQLITE_PRIVATE int sqlite3BtreeNewDb(Btree *p)
Definition: sqlite3.c:55917
#define PAGER_GET_READONLY
Definition: sqlite3.c:10173
SQLITE_PRIVATE int sqlite3PagerAcquire(Pager *pPager, Pgno pgno, DbPage **ppPage, int clrFlag)
Definition: sqlite3.c:46932
BtShared * pBt
Definition: sqlite3.c:52461
SQLITE_PRIVATE sqlite3_file * sqlite3PagerFile(Pager *)
Definition: sqlite3.c:48302
sqlite3 * pSrcDb
Definition: sqlite3.c:62358
Btree * pDest
Definition: sqlite3.c:62353
SQLITE_PRIVATE int sqlite3PagerSync(Pager *pPager, const char *zMaster)
Definition: sqlite3.c:47705
SQLITE_PRIVATE void sqlite3BtreeGetMeta(Btree *pBtree, int idx, u32 *pValue)
Definition: sqlite3.c:61303
sqlite_int64 i64
Definition: sqlite3.c:8954
SQLITE_PRIVATE int sqlite3PagerWrite(DbPage *)
#define SQLITE_OK
Definition: sqlite3.c:611
u32 Pgno
Definition: sqlite3.c:10121
SQLITE_PRIVATE int sqlite3BtreeIsInReadTrans(Btree *)
Definition: sqlite3.c:62117
SQLITE_PRIVATE void sqlite3PagerPagecount(Pager *, int *)
Definition: sqlite3.c:45416
#define PENDING_BYTE
Definition: sqlite3.c:10689
SQLITE_PRIVATE int sqlite3BtreeCommitPhaseOne(Btree *, const char *zMaster)
Definition: sqlite3.c:56552
#define PAGER_JOURNALMODE_WAL
Definition: sqlite3.c:10167
u8 inTransaction
Definition: sqlite3.c:52532
#define sqlite3PagerGet(A, B, C)
Definition: sqlite3.c:10223
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_bind_blob ( sqlite3_stmt pStmt,
int  i,
const void *  zData,
int  n,
void(*)(void *)  xDel 
)

Definition at line 70224 of file sqlite3.c.

Referenced by sqlite3_bind_value().

70230  {
70231  return bindText(pStmt, i, zData, nData, xDel, 0);
70232 }
SQLITE_API int SQLITE_STDCALL sqlite3_bind_blob64 ( sqlite3_stmt pStmt,
int  i,
const void *  zData,
sqlite3_uint64  nData,
void(*)(void *)  xDel 
)

Definition at line 70233 of file sqlite3.c.

70239  {
70240  assert( xDel!=SQLITE_DYNAMIC );
70241  if( nData>0x7fffffff ){
70242  return invokeValueDestructor(zData, xDel, 0);
70243  }else{
70244  return bindText(pStmt, i, zData, (int)nData, xDel, 0);
70245  }
70246 }
#define SQLITE_DYNAMIC
Definition: sqlite3.c:9213
SQLITE_API int SQLITE_STDCALL sqlite3_bind_double ( sqlite3_stmt pStmt,
int  i,
double  rValue 
)

Definition at line 70247 of file sqlite3.c.

References Vdbe::aVar, Vdbe::db, sqlite3::mutex, sqlite3_mutex_leave(), and sqlite3VdbeMemSetDouble().

Referenced by sqlite3_bind_value().

70247  {
70248  int rc;
70249  Vdbe *p = (Vdbe *)pStmt;
70250  rc = vdbeUnbind(p, i);
70251  if( rc==SQLITE_OK ){
70252  sqlite3VdbeMemSetDouble(&p->aVar[i-1], rValue);
70254  }
70255  return rc;
70256 }
SQLITE_PRIVATE void sqlite3VdbeMemSetDouble(Mem *, double)
Definition: sqlite3.c:63821
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
sqlite3 * db
Definition: sqlite3.c:14817
Mem * aVar
Definition: sqlite3.c:14831
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_bind_int ( sqlite3_stmt p,
int  i,
int  iValue 
)

Definition at line 70257 of file sqlite3.c.

References sqlite3_bind_int64().

70257  {
70258  return sqlite3_bind_int64(p, i, (i64)iValue);
70259 }
SQLITE_API int SQLITE_STDCALL sqlite3_bind_int64(sqlite3_stmt *, int, sqlite3_int64)
Definition: sqlite3.c:70260
sqlite_int64 i64
Definition: sqlite3.c:8954

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_bind_int64 ( sqlite3_stmt pStmt,
int  i,
sqlite3_int64  iValue 
)

Definition at line 70260 of file sqlite3.c.

References Vdbe::aVar, Vdbe::db, sqlite3::mutex, sqlite3_mutex_leave(), and sqlite3VdbeMemSetInt64().

Referenced by sqlite3_bind_int(), sqlite3_bind_value(), and sqlite3_blob_open().

70260  {
70261  int rc;
70262  Vdbe *p = (Vdbe *)pStmt;
70263  rc = vdbeUnbind(p, i);
70264  if( rc==SQLITE_OK ){
70265  sqlite3VdbeMemSetInt64(&p->aVar[i-1], iValue);
70267  }
70268  return rc;
70269 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
sqlite3 * db
Definition: sqlite3.c:14817
Mem * aVar
Definition: sqlite3.c:14831
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE void sqlite3VdbeMemSetInt64(Mem *, i64)
Definition: sqlite3.c:63807
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_bind_null ( sqlite3_stmt pStmt,
int  i 
)

Definition at line 70270 of file sqlite3.c.

References Vdbe::db, sqlite3::mutex, and sqlite3_mutex_leave().

Referenced by sqlite3_bind_value().

70270  {
70271  int rc;
70272  Vdbe *p = (Vdbe*)pStmt;
70273  rc = vdbeUnbind(p, i);
70274  if( rc==SQLITE_OK ){
70276  }
70277  return rc;
70278 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
sqlite3 * db
Definition: sqlite3.c:14817
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_bind_parameter_count ( sqlite3_stmt pStmt)

Definition at line 70361 of file sqlite3.c.

References Vdbe::nVar.

70361  {
70362  Vdbe *p = (Vdbe*)pStmt;
70363  return p ? p->nVar : 0;
70364 }
ynVar nVar
Definition: sqlite3.c:14833
SQLITE_API int SQLITE_STDCALL sqlite3_bind_parameter_index ( sqlite3_stmt pStmt,
const char *  zName 
)

Definition at line 70400 of file sqlite3.c.

References sqlite3Strlen30(), and sqlite3VdbeParameterIndex().

70400  {
70401  return sqlite3VdbeParameterIndex((Vdbe*)pStmt, zName, sqlite3Strlen30(zName));
70402 }
SQLITE_PRIVATE int sqlite3VdbeParameterIndex(Vdbe *, const char *, int)
Definition: sqlite3.c:70385
SQLITE_PRIVATE int sqlite3Strlen30(const char *)
Definition: sqlite3.c:23546

Here is the call graph for this function:

SQLITE_API const char *SQLITE_STDCALL sqlite3_bind_parameter_name ( sqlite3_stmt pStmt,
int  i 
)

Definition at line 70372 of file sqlite3.c.

References Vdbe::azVar, and Vdbe::nzVar.

70372  {
70373  Vdbe *p = (Vdbe*)pStmt;
70374  if( p==0 || i<1 || i>p->nzVar ){
70375  return 0;
70376  }
70377  return p->azVar[i-1];
70378 }
ynVar nzVar
Definition: sqlite3.c:14834
char ** azVar
Definition: sqlite3.c:14832
SQLITE_API int SQLITE_STDCALL sqlite3_bind_text ( sqlite3_stmt pStmt,
int  i,
const char *  zData,
int  nData,
void(*)(void *)  xDel 
)

Definition at line 70279 of file sqlite3.c.

70285  {
70286  return bindText(pStmt, i, zData, nData, xDel, SQLITE_UTF8);
70287 }
#define SQLITE_UTF8
Definition: sqlite3.c:4463
SQLITE_API int SQLITE_STDCALL sqlite3_bind_text16 ( sqlite3_stmt pStmt,
int  i,
const void *  zData,
int  nData,
void(*)(void *)  xDel 
)

Definition at line 70305 of file sqlite3.c.

70311  {
70312  return bindText(pStmt, i, zData, nData, xDel, SQLITE_UTF16NATIVE);
70313 }
#define SQLITE_UTF16NATIVE
Definition: sqlite3.c:9055
SQLITE_API int SQLITE_STDCALL sqlite3_bind_text64 ( sqlite3_stmt pStmt,
int  i,
const char *  zData,
sqlite3_uint64  nData,
void(*)(void *)  xDel,
unsigned char  encoding 
)

Definition at line 70288 of file sqlite3.c.

70295  {
70296  assert( xDel!=SQLITE_DYNAMIC );
70297  if( nData>0x7fffffff ){
70298  return invokeValueDestructor(zData, xDel, 0);
70299  }else{
70300  if( enc==SQLITE_UTF16 ) enc = SQLITE_UTF16NATIVE;
70301  return bindText(pStmt, i, zData, (int)nData, xDel, enc);
70302  }
70303 }
#define SQLITE_UTF16
Definition: sqlite3.c:4466
#define SQLITE_UTF16NATIVE
Definition: sqlite3.c:9055
#define SQLITE_DYNAMIC
Definition: sqlite3.c:9213
SQLITE_API int SQLITE_STDCALL sqlite3_bind_value ( sqlite3_stmt pStmt,
int  i,
const sqlite3_value *  pValue 
)

Definition at line 70315 of file sqlite3.c.

References sqlite3_value::enc, sqlite3_value::flags, sqlite3_value::MemValue::i, sqlite3_value::n, sqlite3_value::MemValue::nZero, sqlite3_value::MemValue::r, sqlite3_bind_blob(), sqlite3_bind_double(), sqlite3_bind_int64(), sqlite3_bind_null(), sqlite3_bind_zeroblob(), sqlite3_value_type(), and sqlite3_value::z.

70315  {
70316  int rc;
70317  switch( sqlite3_value_type((sqlite3_value*)pValue) ){
70318  case SQLITE_INTEGER: {
70319  rc = sqlite3_bind_int64(pStmt, i, pValue->u.i);
70320  break;
70321  }
70322  case SQLITE_FLOAT: {
70323  rc = sqlite3_bind_double(pStmt, i, pValue->u.r);
70324  break;
70325  }
70326  case SQLITE_BLOB: {
70327  if( pValue->flags & MEM_Zero ){
70328  rc = sqlite3_bind_zeroblob(pStmt, i, pValue->u.nZero);
70329  }else{
70330  rc = sqlite3_bind_blob(pStmt, i, pValue->z, pValue->n,SQLITE_TRANSIENT);
70331  }
70332  break;
70333  }
70334  case SQLITE_TEXT: {
70335  rc = bindText(pStmt,i, pValue->z, pValue->n, SQLITE_TRANSIENT,
70336  pValue->enc);
70337  break;
70338  }
70339  default: {
70340  rc = sqlite3_bind_null(pStmt, i);
70341  break;
70342  }
70343  }
70344  return rc;
70345 }
SQLITE_API int SQLITE_STDCALL sqlite3_value_type(sqlite3_value *)
Definition: sqlite3.c:69183
#define SQLITE_TEXT
Definition: sqlite3.c:4094
SQLITE_API int SQLITE_STDCALL sqlite3_bind_zeroblob(sqlite3_stmt *, int, int n)
Definition: sqlite3.c:70346
#define SQLITE_BLOB
Definition: sqlite3.c:4089
SQLITE_API int SQLITE_STDCALL sqlite3_bind_double(sqlite3_stmt *, int, double)
Definition: sqlite3.c:70247
#define SQLITE_INTEGER
Definition: sqlite3.c:4087
SQLITE_API int SQLITE_STDCALL sqlite3_bind_null(sqlite3_stmt *, int)
Definition: sqlite3.c:70270
SQLITE_API int SQLITE_STDCALL sqlite3_bind_blob(sqlite3_stmt *, int, const void *, int n, void(*)(void *))
Definition: sqlite3.c:70224
SQLITE_API int SQLITE_STDCALL sqlite3_bind_int64(sqlite3_stmt *, int, sqlite3_int64)
Definition: sqlite3.c:70260
#define SQLITE_TRANSIENT
Definition: sqlite3.c:4702
#define SQLITE_FLOAT
Definition: sqlite3.c:4088
#define MEM_Zero
Definition: sqlite3.c:14723

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_bind_zeroblob ( sqlite3_stmt pStmt,
int  i,
int  n 
)

Definition at line 70346 of file sqlite3.c.

References Vdbe::aVar, Vdbe::db, sqlite3::mutex, sqlite3_mutex_leave(), and sqlite3VdbeMemSetZeroBlob().

Referenced by sqlite3_bind_value().

70346  {
70347  int rc;
70348  Vdbe *p = (Vdbe *)pStmt;
70349  rc = vdbeUnbind(p, i);
70350  if( rc==SQLITE_OK ){
70351  sqlite3VdbeMemSetZeroBlob(&p->aVar[i-1], n);
70353  }
70354  return rc;
70355 }
SQLITE_PRIVATE void sqlite3VdbeMemSetZeroBlob(Mem *, int)
Definition: sqlite3.c:63782
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
sqlite3 * db
Definition: sqlite3.c:14817
Mem * aVar
Definition: sqlite3.c:14831
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_blob_bytes ( sqlite3_blob pBlob)

Definition at line 77883 of file sqlite3.c.

References Incrblob::nByte, and Incrblob::pStmt.

77883  {
77884  Incrblob *p = (Incrblob *)pBlob;
77885  return (p && p->pStmt) ? p->nByte : 0;
77886 }
sqlite3_stmt * pStmt
Definition: sqlite3.c:77484
int nByte
Definition: sqlite3.c:77480
SQLITE_API int SQLITE_STDCALL sqlite3_blob_close ( sqlite3_blob pBlob)

Definition at line 77797 of file sqlite3.c.

References Incrblob::db, sqlite3::mutex, Incrblob::pStmt, sqlite3_finalize(), sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3DbFree().

77797  {
77798  Incrblob *p = (Incrblob *)pBlob;
77799  int rc;
77800  sqlite3 *db;
77801 
77802  if( p ){
77803  db = p->db;
77805  rc = sqlite3_finalize(p->pStmt);
77806  sqlite3DbFree(db, p);
77808  }else{
77809  rc = SQLITE_OK;
77810  }
77811  return rc;
77812 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_API int SQLITE_STDCALL sqlite3_finalize(sqlite3_stmt *pStmt)
Definition: sqlite3.c:69071
sqlite3_stmt * pStmt
Definition: sqlite3.c:77484
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214
sqlite3 * db
Definition: sqlite3.c:77485

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_blob_open ( sqlite3 db,
const char *  zDb,
const char *  zTable,
const char *  zColumn,
sqlite3_int64  iRow,
int  flags,
sqlite3_blob **  ppBlob 
)

Definition at line 77560 of file sqlite3.c.

References Table::aCol, Index::aiColumn, Parse::db, Incrblob::db, sqlite3::flags, Incrblob::flags, Incrblob::iCol, FKey::sColMap::iFrom, Schema::iGeneration, sqlite3::mallocFailed, sqlite3::mutex, Table::nCol, FKey::nCol, Index::nKeyCol, Parse::nMem, Parse::nTab, Parse::nVar, Table::pFKey, Table::pIndex, Index::pNext, FKey::pNextFrom, Table::pSchema, Table::pSelect, Incrblob::pStmt, Schema::schema_cookie, sqlite3_bind_int64(), sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3_stricmp(), sqlite3ApiExit(), sqlite3BtreeEnterAll(), sqlite3BtreeLeaveAll(), sqlite3DbFree(), sqlite3DbMallocZero(), sqlite3ErrorMsg(), sqlite3ErrorWithMsg(), sqlite3LocateTable(), sqlite3MPrintf(), sqlite3ParserReset(), sqlite3SchemaToIndex(), sqlite3VdbeAddOp4Int(), sqlite3VdbeAddOpList(), sqlite3VdbeChangeP1(), sqlite3VdbeChangeP2(), sqlite3VdbeChangeP3(), sqlite3VdbeChangeP4(), sqlite3VdbeChangeP5(), sqlite3VdbeChangeToNoop(), sqlite3VdbeCreate(), sqlite3VdbeFinalize(), sqlite3VdbeMakeReady(), sqlite3VdbeUsesBtree(), Table::tnum, Parse::zErrMsg, Column::zName, and Table::zName.

77568  {
77569  int nAttempt = 0;
77570  int iCol; /* Index of zColumn in row-record */
77571 
77572  /* This VDBE program seeks a btree cursor to the identified
77573  ** db/table/row entry. The reason for using a vdbe program instead
77574  ** of writing code to use the b-tree layer directly is that the
77575  ** vdbe program will take advantage of the various transaction,
77576  ** locking and error handling infrastructure built into the vdbe.
77577  **
77578  ** After seeking the cursor, the vdbe executes an OP_ResultRow.
77579  ** Code external to the Vdbe then "borrows" the b-tree cursor and
77580  ** uses it to implement the blob_read(), blob_write() and
77581  ** blob_bytes() functions.
77582  **
77583  ** The sqlite3_blob_close() function finalizes the vdbe program,
77584  ** which closes the b-tree cursor and (possibly) commits the
77585  ** transaction.
77586  */
77587  static const int iLn = VDBE_OFFSET_LINENO(4);
77588  static const VdbeOpList openBlob[] = {
77589  /* {OP_Transaction, 0, 0, 0}, // 0: Inserted separately */
77590  {OP_TableLock, 0, 0, 0}, /* 1: Acquire a read or write lock */
77591  /* One of the following two instructions is replaced by an OP_Noop. */
77592  {OP_OpenRead, 0, 0, 0}, /* 2: Open cursor 0 for reading */
77593  {OP_OpenWrite, 0, 0, 0}, /* 3: Open cursor 0 for read/write */
77594  {OP_Variable, 1, 1, 1}, /* 4: Push the rowid to the stack */
77595  {OP_NotExists, 0, 10, 1}, /* 5: Seek the cursor */
77596  {OP_Column, 0, 0, 1}, /* 6 */
77597  {OP_ResultRow, 1, 0, 0}, /* 7 */
77598  {OP_Goto, 0, 4, 0}, /* 8 */
77599  {OP_Close, 0, 0, 0}, /* 9 */
77600  {OP_Halt, 0, 0, 0}, /* 10 */
77601  };
77602 
77603  int rc = SQLITE_OK;
77604  char *zErr = 0;
77605  Table *pTab;
77606  Parse *pParse = 0;
77607  Incrblob *pBlob = 0;
77608 
77609 #ifdef SQLITE_ENABLE_API_ARMOR
77610  if( ppBlob==0 ){
77611  return SQLITE_MISUSE_BKPT;
77612  }
77613 #endif
77614  *ppBlob = 0;
77615 #ifdef SQLITE_ENABLE_API_ARMOR
77616  if( !sqlite3SafetyCheckOk(db) || zTable==0 ){
77617  return SQLITE_MISUSE_BKPT;
77618  }
77619 #endif
77620  flags = !!flags; /* flags = (flags ? 1 : 0); */
77621 
77623 
77624  pBlob = (Incrblob *)sqlite3DbMallocZero(db, sizeof(Incrblob));
77625  if( !pBlob ) goto blob_open_out;
77626  pParse = sqlite3StackAllocRaw(db, sizeof(*pParse));
77627  if( !pParse ) goto blob_open_out;
77628 
77629  do {
77630  memset(pParse, 0, sizeof(Parse));
77631  pParse->db = db;
77632  sqlite3DbFree(db, zErr);
77633  zErr = 0;
77634 
77636  pTab = sqlite3LocateTable(pParse, 0, zTable, zDb);
77637  if( pTab && IsVirtual(pTab) ){
77638  pTab = 0;
77639  sqlite3ErrorMsg(pParse, "cannot open virtual table: %s", zTable);
77640  }
77641  if( pTab && !HasRowid(pTab) ){
77642  pTab = 0;
77643  sqlite3ErrorMsg(pParse, "cannot open table without rowid: %s", zTable);
77644  }
77645 #ifndef SQLITE_OMIT_VIEW
77646  if( pTab && pTab->pSelect ){
77647  pTab = 0;
77648  sqlite3ErrorMsg(pParse, "cannot open view: %s", zTable);
77649  }
77650 #endif
77651  if( !pTab ){
77652  if( pParse->zErrMsg ){
77653  sqlite3DbFree(db, zErr);
77654  zErr = pParse->zErrMsg;
77655  pParse->zErrMsg = 0;
77656  }
77657  rc = SQLITE_ERROR;
77659  goto blob_open_out;
77660  }
77661 
77662  /* Now search pTab for the exact column. */
77663  for(iCol=0; iCol<pTab->nCol; iCol++) {
77664  if( sqlite3StrICmp(pTab->aCol[iCol].zName, zColumn)==0 ){
77665  break;
77666  }
77667  }
77668  if( iCol==pTab->nCol ){
77669  sqlite3DbFree(db, zErr);
77670  zErr = sqlite3MPrintf(db, "no such column: \"%s\"", zColumn);
77671  rc = SQLITE_ERROR;
77673  goto blob_open_out;
77674  }
77675 
77676  /* If the value is being opened for writing, check that the
77677  ** column is not indexed, and that it is not part of a foreign key.
77678  ** It is against the rules to open a column to which either of these
77679  ** descriptions applies for writing. */
77680  if( flags ){
77681  const char *zFault = 0;
77682  Index *pIdx;
77683 #ifndef SQLITE_OMIT_FOREIGN_KEY
77684  if( db->flags&SQLITE_ForeignKeys ){
77685  /* Check that the column is not part of an FK child key definition. It
77686  ** is not necessary to check if it is part of a parent key, as parent
77687  ** key columns must be indexed. The check below will pick up this
77688  ** case. */
77689  FKey *pFKey;
77690  for(pFKey=pTab->pFKey; pFKey; pFKey=pFKey->pNextFrom){
77691  int j;
77692  for(j=0; j<pFKey->nCol; j++){
77693  if( pFKey->aCol[j].iFrom==iCol ){
77694  zFault = "foreign key";
77695  }
77696  }
77697  }
77698  }
77699 #endif
77700  for(pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext){
77701  int j;
77702  for(j=0; j<pIdx->nKeyCol; j++){
77703  if( pIdx->aiColumn[j]==iCol ){
77704  zFault = "indexed";
77705  }
77706  }
77707  }
77708  if( zFault ){
77709  sqlite3DbFree(db, zErr);
77710  zErr = sqlite3MPrintf(db, "cannot open %s column for writing", zFault);
77711  rc = SQLITE_ERROR;
77713  goto blob_open_out;
77714  }
77715  }
77716 
77717  pBlob->pStmt = (sqlite3_stmt *)sqlite3VdbeCreate(pParse);
77718  assert( pBlob->pStmt || db->mallocFailed );
77719  if( pBlob->pStmt ){
77720  Vdbe *v = (Vdbe *)pBlob->pStmt;
77721  int iDb = sqlite3SchemaToIndex(db, pTab->pSchema);
77722 
77723 
77724  sqlite3VdbeAddOp4Int(v, OP_Transaction, iDb, flags,
77725  pTab->pSchema->schema_cookie,
77726  pTab->pSchema->iGeneration);
77727  sqlite3VdbeChangeP5(v, 1);
77728  sqlite3VdbeAddOpList(v, ArraySize(openBlob), openBlob, iLn);
77729 
77730  /* Make sure a mutex is held on the table to be accessed */
77731  sqlite3VdbeUsesBtree(v, iDb);
77732 
77733  /* Configure the OP_TableLock instruction */
77734 #ifdef SQLITE_OMIT_SHARED_CACHE
77736 #else
77737  sqlite3VdbeChangeP1(v, 1, iDb);
77738  sqlite3VdbeChangeP2(v, 1, pTab->tnum);
77739  sqlite3VdbeChangeP3(v, 1, flags);
77740  sqlite3VdbeChangeP4(v, 1, pTab->zName, P4_TRANSIENT);
77741 #endif
77742 
77743  /* Remove either the OP_OpenWrite or OpenRead. Set the P2
77744  ** parameter of the other to pTab->tnum. */
77745  sqlite3VdbeChangeToNoop(v, 3 - flags);
77746  sqlite3VdbeChangeP2(v, 2 + flags, pTab->tnum);
77747  sqlite3VdbeChangeP3(v, 2 + flags, iDb);
77748 
77749  /* Configure the number of columns. Configure the cursor to
77750  ** think that the table has one more column than it really
77751  ** does. An OP_Column to retrieve this imaginary column will
77752  ** always return an SQL NULL. This is useful because it means
77753  ** we can invoke OP_Column to fill in the vdbe cursors type
77754  ** and offset cache without causing any IO.
77755  */
77756  sqlite3VdbeChangeP4(v, 2+flags, SQLITE_INT_TO_PTR(pTab->nCol+1),P4_INT32);
77757  sqlite3VdbeChangeP2(v, 6, pTab->nCol);
77758  if( !db->mallocFailed ){
77759  pParse->nVar = 1;
77760  pParse->nMem = 1;
77761  pParse->nTab = 1;
77762  sqlite3VdbeMakeReady(v, pParse);
77763  }
77764  }
77765 
77766  pBlob->flags = flags;
77767  pBlob->iCol = iCol;
77768  pBlob->db = db;
77770  if( db->mallocFailed ){
77771  goto blob_open_out;
77772  }
77773  sqlite3_bind_int64(pBlob->pStmt, 1, iRow);
77774  rc = blobSeekToRow(pBlob, iRow, &zErr);
77775  } while( (++nAttempt)<SQLITE_MAX_SCHEMA_RETRY && rc==SQLITE_SCHEMA );
77776 
77777 blob_open_out:
77778  if( rc==SQLITE_OK && db->mallocFailed==0 ){
77779  *ppBlob = (sqlite3_blob *)pBlob;
77780  }else{
77781  if( pBlob && pBlob->pStmt ) sqlite3VdbeFinalize((Vdbe *)pBlob->pStmt);
77782  sqlite3DbFree(db, pBlob);
77783  }
77784  sqlite3ErrorWithMsg(db, rc, (zErr ? "%s" : 0), zErr);
77785  sqlite3DbFree(db, zErr);
77786  sqlite3ParserReset(pParse);
77787  sqlite3StackFree(db, pParse);
77788  rc = sqlite3ApiExit(db, rc);
77790  return rc;
77791 }
Index * pIndex
Definition: sqlite3.c:11508
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
int iGeneration
Definition: sqlite3.c:10863
SQLITE_PRIVATE void sqlite3VdbeMakeReady(Vdbe *, Parse *)
Definition: sqlite3.c:66467
#define OP_NotExists
Definition: sqlite3.c:9828
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
int nTab
Definition: sqlite3.c:12516
#define SQLITE_SCHEMA
Definition: sqlite3.c:629
SQLITE_PRIVATE void sqlite3VdbeChangeP1(Vdbe *, u32 addr, int P1)
Definition: sqlite3.c:65450
#define P4_TRANSIENT
Definition: sqlite3.c:9708
Column * aCol
Definition: sqlite3.c:11507
#define SQLITE_MAX_SCHEMA_RETRY
Definition: sqlite3.c:14525
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
int flags
Definition: sqlite3.c:77479
Schema * pSchema
Definition: sqlite3.c:11535
#define OP_Transaction
Definition: sqlite3.c:9762
#define SQLITE_ERROR
Definition: sqlite3.c:613
#define ArraySize(X)
Definition: sqlite3.c:9198
FKey * pNextFrom
Definition: sqlite3.c:11603
SQLITE_PRIVATE void sqlite3ParserReset(Parse *)
Definition: sqlite3.c:106114
char * zErrMsg
Definition: sqlite3.c:12501
Select * pSelect
Definition: sqlite3.c:11509
i16 nCol
Definition: sqlite3.c:11518
#define OP_Goto
Definition: sqlite3.c:9774
SQLITE_PRIVATE int sqlite3SchemaToIndex(sqlite3 *db, Schema *)
Definition: sqlite3.c:106086
int schema_cookie
Definition: sqlite3.c:10862
#define OP_Halt
Definition: sqlite3.c:9782
struct sqlite3_stmt sqlite3_stmt
Definition: sqlite3.c:3302
SQLITE_PRIVATE void sqlite3ErrorWithMsg(sqlite3 *, int, const char *,...)
Definition: sqlite3.c:23583
#define VDBE_OFFSET_LINENO(x)
Definition: sqlite3.c:10074
#define OP_Column
Definition: sqlite3.c:9805
SQLITE_API int SQLITE_STDCALL sqlite3_bind_int64(sqlite3_stmt *, int, sqlite3_int64)
Definition: sqlite3.c:70260
SQLITE_PRIVATE void sqlite3VdbeChangeP2(Vdbe *, u32 addr, int P2)
Definition: sqlite3.c:65461
#define sqlite3StrICmp
Definition: sqlite3.c:12980
SQLITE_PRIVATE void sqlite3ErrorMsg(Parse *, const char *,...)
Definition: sqlite3.c:23615
FKey * pFKey
Definition: sqlite3.c:11510
#define IsVirtual(X)
Definition: sqlite3.c:11563
int tnum
Definition: sqlite3.c:11516
int nCol
Definition: sqlite3.c:11607
sqlite3_stmt * pStmt
Definition: sqlite3.c:77484
#define P4_INT32
Definition: sqlite3.c:9713
#define sqlite3StackAllocRaw(D, N)
Definition: sqlite3.c:13019
SQLITE_PRIVATE Vdbe * sqlite3VdbeCreate(Parse *)
Definition: sqlite3.c:64834
SQLITE_PRIVATE void sqlite3VdbeChangeP5(Vdbe *, u8 P5)
Definition: sqlite3.c:65482
#define SQLITE_INT_TO_PTR(X)
Definition: sqlite3.c:8306
struct FKey::sColMap aCol[1]
#define OP_OpenRead
Definition: sqlite3.c:9812
#define sqlite3StackFree(D, P)
Definition: sqlite3.c:13021
Index * pNext
Definition: sqlite3.c:11737
SQLITE_PRIVATE int sqlite3VdbeFinalize(Vdbe *)
Definition: sqlite3.c:67476
SQLITE_PRIVATE void sqlite3BtreeLeaveAll(sqlite3 *)
Definition: sqlite3.c:52989
#define OP_Close
Definition: sqlite3.c:9819
SQLITE_PRIVATE void sqlite3BtreeEnterAll(sqlite3 *)
Definition: sqlite3.c:52980
#define OP_Variable
Definition: sqlite3.c:9789
char * zName
Definition: sqlite3.c:11342
u16 nKeyCol
Definition: sqlite3.c:11744
SQLITE_PRIVATE char * sqlite3MPrintf(sqlite3 *, const char *,...)
Definition: sqlite3.c:22275
SQLITE_PRIVATE Table * sqlite3LocateTable(Parse *, int isView, const char *, const char *)
Definition: sqlite3.c:91152
#define SQLITE_ForeignKeys
Definition: sqlite3.c:11137
SQLITE_PRIVATE int sqlite3VdbeAddOpList(Vdbe *, int nOp, VdbeOpList const *aOp, int iLineno)
Definition: sqlite3.c:65372
SQLITE_PRIVATE void * sqlite3DbMallocZero(sqlite3 *, u64)
Definition: sqlite3.c:21149
SQLITE_PRIVATE void sqlite3VdbeChangeToNoop(Vdbe *, int addr)
Definition: sqlite3.c:65587
u8 mallocFailed
Definition: sqlite3.c:11008
i16 * aiColumn
Definition: sqlite3.c:11733
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE int sqlite3VdbeAddOp4Int(Vdbe *, int, int, int, int, int)
Definition: sqlite3.c:65056
#define OP_ResultRow
Definition: sqlite3.c:9793
SQLITE_PRIVATE void sqlite3VdbeChangeP4(Vdbe *, int addr, const char *zP4, int N)
Definition: sqlite3.c:65628
SQLITE_PRIVATE void sqlite3VdbeChangeP3(Vdbe *, u32 addr, int P3)
Definition: sqlite3.c:65471
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
struct sqlite3_blob sqlite3_blob
Definition: sqlite3.c:5974
int iCol
Definition: sqlite3.c:77482
SQLITE_PRIVATE void sqlite3VdbeUsesBtree(Vdbe *, int)
Definition: sqlite3.c:65971
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
sqlite3 * db
Definition: sqlite3.c:12500
int flags
Definition: sqlite3.c:10998
char * zName
Definition: sqlite3.c:11506
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
#define HasRowid(X)
Definition: sqlite3.c:11571
int nVar
Definition: sqlite3.c:12573
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214
sqlite3 * db
Definition: sqlite3.c:77485
int nMem
Definition: sqlite3.c:12517
#define OP_TableLock
Definition: sqlite3.c:9903
#define OP_OpenWrite
Definition: sqlite3.c:9813

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_blob_read ( sqlite3_blob pBlob,
void *  Z,
int  N,
int  iOffset 
)

Definition at line 77866 of file sqlite3.c.

References sqlite3BtreeData().

77866  {
77867  return blobReadWrite(pBlob, z, n, iOffset, sqlite3BtreeData);
77868 }
SQLITE_PRIVATE int sqlite3BtreeData(BtCursor *, u32 offset, u32 amt, void *)
Definition: sqlite3.c:57493

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_blob_reopen ( sqlite3_blob pBlob,
sqlite3_int64  iRow 
)

Definition at line 77898 of file sqlite3.c.

References Incrblob::db, sqlite3::mutex, Incrblob::pStmt, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3ApiExit(), sqlite3DbFree(), and sqlite3ErrorWithMsg().

77898  {
77899  int rc;
77900  Incrblob *p = (Incrblob *)pBlob;
77901  sqlite3 *db;
77902 
77903  if( p==0 ) return SQLITE_MISUSE_BKPT;
77904  db = p->db;
77906 
77907  if( p->pStmt==0 ){
77908  /* If there is no statement handle, then the blob-handle has
77909  ** already been invalidated. Return SQLITE_ABORT in this case.
77910  */
77911  rc = SQLITE_ABORT;
77912  }else{
77913  char *zErr;
77914  rc = blobSeekToRow(p, iRow, &zErr);
77915  if( rc!=SQLITE_OK ){
77916  sqlite3ErrorWithMsg(db, rc, (zErr ? "%s" : 0), zErr);
77917  sqlite3DbFree(db, zErr);
77918  }
77919  assert( rc!=SQLITE_SCHEMA );
77920  }
77921 
77922  rc = sqlite3ApiExit(db, rc);
77923  assert( rc==SQLITE_OK || p->pStmt==0 );
77925  return rc;
77926 }
#define SQLITE_ABORT
Definition: sqlite3.c:616
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_SCHEMA
Definition: sqlite3.c:629
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_PRIVATE void sqlite3ErrorWithMsg(sqlite3 *, int, const char *,...)
Definition: sqlite3.c:23583
sqlite3_stmt * pStmt
Definition: sqlite3.c:77484
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214
sqlite3 * db
Definition: sqlite3.c:77485

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_blob_write ( sqlite3_blob pBlob,
const void *  z,
int  n,
int  iOffset 
)

Definition at line 77873 of file sqlite3.c.

References sqlite3BtreePutData().

77873  {
77874  return blobReadWrite(pBlob, (void *)z, n, iOffset, sqlite3BtreePutData);
77875 }
SQLITE_PRIVATE int sqlite3BtreePutData(BtCursor *, u32 offset, u32 amt, void *)
Definition: sqlite3.c:62212

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_busy_handler ( sqlite3 db,
int(*)(void *, int)  xBusy,
void *  pArg 
)

Definition at line 129415 of file sqlite3.c.

References sqlite3::busyHandler, sqlite3::busyTimeout, sqlite3::mutex, BusyHandler::nBusy, BusyHandler::pArg, sqlite3_mutex_enter(), sqlite3_mutex_leave(), and BusyHandler::xFunc.

Referenced by sqlite3_busy_timeout().

129419  {
129420 #ifdef SQLITE_ENABLE_API_ARMOR
129421  if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
129422 #endif
129423  sqlite3_mutex_enter(db->mutex);
129424  db->busyHandler.xFunc = xBusy;
129425  db->busyHandler.pArg = pArg;
129426  db->busyHandler.nBusy = 0;
129427  db->busyTimeout = 0;
129428  sqlite3_mutex_leave(db->mutex);
129429  return SQLITE_OK;
129430 }
int(* xFunc)(void *, int)
Definition: sqlite3.c:9171
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
int busyTimeout
Definition: sqlite3.c:11078
void * pArg
Definition: sqlite3.c:9172
BusyHandler busyHandler
Definition: sqlite3.c:11075
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_busy_timeout ( sqlite3 db,
int  ms 
)

Definition at line 129469 of file sqlite3.c.

References sqlite3::busyTimeout, and sqlite3_busy_handler().

Referenced by sqlite3Pragma().

129469  {
129470 #ifdef SQLITE_ENABLE_API_ARMOR
129471  if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
129472 #endif
129473  if( ms>0 ){
129474  sqlite3_busy_handler(db, sqliteDefaultBusyCallback, (void*)db);
129475  db->busyTimeout = ms;
129476  }else{
129477  sqlite3_busy_handler(db, 0, 0);
129478  }
129479  return SQLITE_OK;
129480 }
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
int busyTimeout
Definition: sqlite3.c:11078
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_API int SQLITE_STDCALL sqlite3_busy_handler(sqlite3 *, int(*)(void *, int), void *)
Definition: sqlite3.c:129415
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_cancel_auto_extension ( void(*)(void)  xEntryPoint)

Definition at line 103056 of file sqlite3.c.

References sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3MutexAlloc().

103056  {
103057 #if SQLITE_THREADSAFE
103059 #endif
103060  int i;
103061  int n = 0;
103062  wsdAutoextInit;
103063  sqlite3_mutex_enter(mutex);
103064  for(i=wsdAutoext.nExt-1; i>=0; i--){
103065  if( wsdAutoext.aExt[i]==xInit ){
103066  wsdAutoext.nExt--;
103067  wsdAutoext.aExt[i] = wsdAutoext.aExt[wsdAutoext.nExt];
103068  n++;
103069  break;
103070  }
103071  }
103072  sqlite3_mutex_leave(mutex);
103073  return n;
103074 }
#define SQLITE_MUTEX_STATIC_MASTER
Definition: sqlite3.c:6468
#define wsdAutoextInit
Definition: sqlite3.c:103002
SQLITE_PRIVATE sqlite3_mutex * sqlite3MutexAlloc(int)
Definition: sqlite3.c:19193
#define wsdAutoext
Definition: sqlite3.c:103003
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_changes ( sqlite3 db)

Definition at line 128852 of file sqlite3.c.

References sqlite3::nChange.

128852  {
128853 #ifdef SQLITE_ENABLE_API_ARMOR
128854  if( !sqlite3SafetyCheckOk(db) ){
128855  (void)SQLITE_MISUSE_BKPT;
128856  return 0;
128857  }
128858 #endif
128859  return db->nChange;
128860 }
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
int nChange
Definition: sqlite3.c:11016
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API int SQLITE_STDCALL sqlite3_clear_bindings ( sqlite3_stmt pStmt)

Definition at line 69116 of file sqlite3.c.

References Vdbe::aVar, Vdbe::db, Vdbe::expired, Vdbe::expmask, sqlite3_value::flags, Vdbe::isPrepareV2, sqlite3::mutex, Vdbe::nVar, sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3VdbeMemRelease().

69116  {
69117  int i;
69118  int rc = SQLITE_OK;
69119  Vdbe *p = (Vdbe*)pStmt;
69120 #if SQLITE_THREADSAFE
69121  sqlite3_mutex *mutex = ((Vdbe*)pStmt)->db->mutex;
69122 #endif
69123  sqlite3_mutex_enter(mutex);
69124  for(i=0; i<p->nVar; i++){
69125  sqlite3VdbeMemRelease(&p->aVar[i]);
69126  p->aVar[i].flags = MEM_Null;
69127  }
69128  if( p->isPrepareV2 && p->expmask ){
69129  p->expired = 1;
69130  }
69131  sqlite3_mutex_leave(mutex);
69132  return rc;
69133 }
u16 flags
Definition: sqlite3.c:14672
SQLITE_PRIVATE void sqlite3VdbeMemRelease(Mem *p)
Definition: sqlite3.c:63527
Mem * aVar
Definition: sqlite3.c:14831
pthread_mutex_t mutex
Definition: sqlite3.c:19518
bft isPrepareV2
Definition: sqlite3.c:14851
u32 expmask
Definition: sqlite3.c:14870
#define SQLITE_OK
Definition: sqlite3.c:611
#define MEM_Null
Definition: sqlite3.c:14700
bft expired
Definition: sqlite3.c:14846
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
ynVar nVar
Definition: sqlite3.c:14833
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_close ( sqlite3 db)

Definition at line 129007 of file sqlite3.c.

129007 { return sqlite3Close(db,0); }
SQLITE_API int SQLITE_STDCALL sqlite3_close_v2 ( sqlite3 db)

Definition at line 129008 of file sqlite3.c.

129008 { return sqlite3Close(db,1); }
SQLITE_API int SQLITE_STDCALL sqlite3_collation_needed ( sqlite3 db,
void *  pCollNeededArg,
void(*)(void *, sqlite3 *, int eTextRep, const char *)  xCollNeeded 
)

Definition at line 131035 of file sqlite3.c.

References sqlite3::mutex, sqlite3::pCollNeededArg, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3::xCollNeeded, and sqlite3::xCollNeeded16.

131039  {
131040 #ifdef SQLITE_ENABLE_API_ARMOR
131041  if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
131042 #endif
131043  sqlite3_mutex_enter(db->mutex);
131044  db->xCollNeeded = xCollNeeded;
131045  db->xCollNeeded16 = 0;
131046  db->pCollNeededArg = pCollNeededArg;
131047  sqlite3_mutex_leave(db->mutex);
131048  return SQLITE_OK;
131049 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
void * pCollNeededArg
Definition: sqlite3.c:11050
void(* xCollNeeded)(void *, sqlite3 *, int eTextRep, const char *)
Definition: sqlite3.c:11048
void(* xCollNeeded16)(void *, sqlite3 *, int eTextRep, const void *)
Definition: sqlite3.c:11049
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_collation_needed16 ( sqlite3 db,
void *  pCollNeededArg,
void(*)(void *, sqlite3 *, int eTextRep, const void *)  xCollNeeded16 
)

Definition at line 131056 of file sqlite3.c.

References sqlite3::mutex, sqlite3::pCollNeededArg, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3::xCollNeeded, and sqlite3::xCollNeeded16.

131060  {
131061 #ifdef SQLITE_ENABLE_API_ARMOR
131062  if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
131063 #endif
131064  sqlite3_mutex_enter(db->mutex);
131065  db->xCollNeeded = 0;
131066  db->xCollNeeded16 = xCollNeeded16;
131067  db->pCollNeededArg = pCollNeededArg;
131068  sqlite3_mutex_leave(db->mutex);
131069  return SQLITE_OK;
131070 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
void * pCollNeededArg
Definition: sqlite3.c:11050
void(* xCollNeeded)(void *, sqlite3 *, int eTextRep, const char *)
Definition: sqlite3.c:11048
void(* xCollNeeded16)(void *, sqlite3 *, int eTextRep, const void *)
Definition: sqlite3.c:11049
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API const void *SQLITE_STDCALL sqlite3_column_blob ( sqlite3_stmt pStmt,
int  iCol 
)

Definition at line 69923 of file sqlite3.c.

References sqlite3_value_blob().

69923  {
69924  const void *val;
69925  val = sqlite3_value_blob( columnMem(pStmt,i) );
69926  /* Even though there is no encoding conversion, value_blob() might
69927  ** need to call malloc() to expand the result of a zeroblob()
69928  ** expression.
69929  */
69930  columnMallocFailure(pStmt);
69931  return val;
69932 }
SQLITE_API const void *SQLITE_STDCALL sqlite3_value_blob(sqlite3_value *)
Definition: sqlite3.c:69140

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_column_bytes ( sqlite3_stmt pStmt,
int  iCol 
)

Definition at line 69933 of file sqlite3.c.

References sqlite3_value_bytes().

69933  {
69934  int val = sqlite3_value_bytes( columnMem(pStmt,i) );
69935  columnMallocFailure(pStmt);
69936  return val;
69937 }
SQLITE_API int SQLITE_STDCALL sqlite3_value_bytes(sqlite3_value *)
Definition: sqlite3.c:69150

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_column_bytes16 ( sqlite3_stmt pStmt,
int  iCol 
)

Definition at line 69938 of file sqlite3.c.

References sqlite3_value_bytes16().

69938  {
69939  int val = sqlite3_value_bytes16( columnMem(pStmt,i) );
69940  columnMallocFailure(pStmt);
69941  return val;
69942 }
SQLITE_API int SQLITE_STDCALL sqlite3_value_bytes16(sqlite3_value *)
Definition: sqlite3.c:69153

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_column_count ( sqlite3_stmt pStmt)

Definition at line 69812 of file sqlite3.c.

References Vdbe::nResColumn.

Referenced by sqlite3_exec().

69812  {
69813  Vdbe *pVm = (Vdbe *)pStmt;
69814  return pVm ? pVm->nResColumn : 0;
69815 }
u16 nResColumn
Definition: sqlite3.c:14841
SQLITE_API const char* SQLITE_STDCALL sqlite3_column_database_name ( sqlite3_stmt ,
int   
)
SQLITE_API const void* SQLITE_STDCALL sqlite3_column_database_name16 ( sqlite3_stmt ,
int   
)
SQLITE_API const char *SQLITE_STDCALL sqlite3_column_decltype ( sqlite3_stmt pStmt,
int  N 
)

Definition at line 70068 of file sqlite3.c.

70068  {
70069  return columnName(
70070  pStmt, N, (const void*(*)(Mem*))sqlite3_value_text, COLNAME_DECLTYPE);
70071 }
SQLITE_API const unsigned char *SQLITE_STDCALL sqlite3_value_text(sqlite3_value *)
Definition: sqlite3.c:69165
#define COLNAME_DECLTYPE
Definition: sqlite3.c:9729
Definition: sqlite3.c:14663
SQLITE_API const void *SQLITE_STDCALL sqlite3_column_decltype16 ( sqlite3_stmt pStmt,
int  N 
)

Definition at line 70073 of file sqlite3.c.

References sqlite3_value_text16().

70073  {
70074  return columnName(
70075  pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, COLNAME_DECLTYPE);
70076 }
SQLITE_API const void *SQLITE_STDCALL sqlite3_value_text16(sqlite3_value *)
Definition: sqlite3.c:69169
#define COLNAME_DECLTYPE
Definition: sqlite3.c:9729
Definition: sqlite3.c:14663

Here is the call graph for this function:

SQLITE_API double SQLITE_STDCALL sqlite3_column_double ( sqlite3_stmt pStmt,
int  iCol 
)

Definition at line 69943 of file sqlite3.c.

References sqlite3_value_double().

69943  {
69944  double val = sqlite3_value_double( columnMem(pStmt,i) );
69945  columnMallocFailure(pStmt);
69946  return val;
69947 }
SQLITE_API double SQLITE_STDCALL sqlite3_value_double(sqlite3_value *)
Definition: sqlite3.c:69156

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_column_int ( sqlite3_stmt pStmt,
int  iCol 
)

Definition at line 69948 of file sqlite3.c.

References sqlite3_value_int().

69948  {
69949  int val = sqlite3_value_int( columnMem(pStmt,i) );
69950  columnMallocFailure(pStmt);
69951  return val;
69952 }
SQLITE_API int SQLITE_STDCALL sqlite3_value_int(sqlite3_value *)
Definition: sqlite3.c:69159

Here is the call graph for this function:

SQLITE_API sqlite_int64 SQLITE_STDCALL sqlite3_column_int64 ( sqlite3_stmt pStmt,
int  iCol 
)

Definition at line 69953 of file sqlite3.c.

References sqlite3_value_int64().

69953  {
69954  sqlite_int64 val = sqlite3_value_int64( columnMem(pStmt,i) );
69955  columnMallocFailure(pStmt);
69956  return val;
69957 }
long long int sqlite_int64
Definition: sqlite3.c:464
SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_value_int64(sqlite3_value *)
Definition: sqlite3.c:69162

Here is the call graph for this function:

SQLITE_API const char *SQLITE_STDCALL sqlite3_column_name ( sqlite3_stmt pStmt,
int  N 
)

Definition at line 70043 of file sqlite3.c.

Referenced by sqlite3_exec().

70043  {
70044  return columnName(
70045  pStmt, N, (const void*(*)(Mem*))sqlite3_value_text, COLNAME_NAME);
70046 }
#define COLNAME_NAME
Definition: sqlite3.c:9728
SQLITE_API const unsigned char *SQLITE_STDCALL sqlite3_value_text(sqlite3_value *)
Definition: sqlite3.c:69165
Definition: sqlite3.c:14663
SQLITE_API const void *SQLITE_STDCALL sqlite3_column_name16 ( sqlite3_stmt pStmt,
int  N 
)

Definition at line 70048 of file sqlite3.c.

References sqlite3_value_text16().

70048  {
70049  return columnName(
70050  pStmt, N, (const void*(*)(Mem*))sqlite3_value_text16, COLNAME_NAME);
70051 }
SQLITE_API const void *SQLITE_STDCALL sqlite3_value_text16(sqlite3_value *)
Definition: sqlite3.c:69169
#define COLNAME_NAME
Definition: sqlite3.c:9728
Definition: sqlite3.c:14663

Here is the call graph for this function:

SQLITE_API const char* SQLITE_STDCALL sqlite3_column_origin_name ( sqlite3_stmt ,
int   
)
SQLITE_API const void* SQLITE_STDCALL sqlite3_column_origin_name16 ( sqlite3_stmt ,
int   
)
SQLITE_API const char* SQLITE_STDCALL sqlite3_column_table_name ( sqlite3_stmt ,
int   
)
SQLITE_API const void* SQLITE_STDCALL sqlite3_column_table_name16 ( sqlite3_stmt ,
int   
)
SQLITE_API const unsigned char *SQLITE_STDCALL sqlite3_column_text ( sqlite3_stmt pStmt,
int  iCol 
)

Definition at line 69958 of file sqlite3.c.

References sqlite3_value_text().

Referenced by sqlite3_exec().

69958  {
69959  const unsigned char *val = sqlite3_value_text( columnMem(pStmt,i) );
69960  columnMallocFailure(pStmt);
69961  return val;
69962 }
SQLITE_API const unsigned char *SQLITE_STDCALL sqlite3_value_text(sqlite3_value *)
Definition: sqlite3.c:69165

Here is the call graph for this function:

SQLITE_API const void *SQLITE_STDCALL sqlite3_column_text16 ( sqlite3_stmt pStmt,
int  iCol 
)

Definition at line 69973 of file sqlite3.c.

References sqlite3_value_text16().

69973  {
69974  const void *val = sqlite3_value_text16( columnMem(pStmt,i) );
69975  columnMallocFailure(pStmt);
69976  return val;
69977 }
SQLITE_API const void *SQLITE_STDCALL sqlite3_value_text16(sqlite3_value *)
Definition: sqlite3.c:69169

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_column_type ( sqlite3_stmt pStmt,
int  iCol 
)

Definition at line 69979 of file sqlite3.c.

References sqlite3_value_type().

Referenced by sqlite3_exec().

69979  {
69980  int iType = sqlite3_value_type( columnMem(pStmt,i) );
69981  columnMallocFailure(pStmt);
69982  return iType;
69983 }
SQLITE_API int SQLITE_STDCALL sqlite3_value_type(sqlite3_value *)
Definition: sqlite3.c:69183

Here is the call graph for this function:

SQLITE_API sqlite3_value *SQLITE_STDCALL sqlite3_column_value ( sqlite3_stmt pStmt,
int  iCol 
)

Definition at line 69963 of file sqlite3.c.

References sqlite3_value::flags.

69963  {
69964  Mem *pOut = columnMem(pStmt, i);
69965  if( pOut->flags&MEM_Static ){
69966  pOut->flags &= ~MEM_Static;
69967  pOut->flags |= MEM_Ephem;
69968  }
69969  columnMallocFailure(pStmt);
69970  return (sqlite3_value *)pOut;
69971 }
u16 flags
Definition: sqlite3.c:14672
Definition: sqlite3.c:14663
#define MEM_Ephem
Definition: sqlite3.c:14721
#define MEM_Static
Definition: sqlite3.c:14720
SQLITE_API void *SQLITE_STDCALL sqlite3_commit_hook ( sqlite3 db,
int(*)(void *)  xCallback,
void *  pArg 
)

Definition at line 129782 of file sqlite3.c.

References sqlite3::mutex, sqlite3::pCommitArg, sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3::xCommitCallback.

129786  {
129787  void *pOld;
129788 
129789 #ifdef SQLITE_ENABLE_API_ARMOR
129790  if( !sqlite3SafetyCheckOk(db) ){
129791  (void)SQLITE_MISUSE_BKPT;
129792  return 0;
129793  }
129794 #endif
129795  sqlite3_mutex_enter(db->mutex);
129796  pOld = db->pCommitArg;
129797  db->xCommitCallback = xCallback;
129798  db->pCommitArg = pArg;
129799  sqlite3_mutex_leave(db->mutex);
129800  return pOld;
129801 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
int(* xCommitCallback)(void *)
Definition: sqlite3.c:11039
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
void * pCommitArg
Definition: sqlite3.c:11038
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API const char *SQLITE_STDCALL sqlite3_compileoption_get ( int  N)

Definition at line 14472 of file sqlite3.c.

Referenced by sqlite3Pragma().

14472  {
14473  if( N>=0 && N<ArraySize(azCompileOpt) ){
14474  return azCompileOpt[N];
14475  }
14476  return 0;
14477 }
#define ArraySize(X)
Definition: sqlite3.c:9198
SQLITE_API int SQLITE_STDCALL sqlite3_compileoption_used ( const char *  zOptName)

Definition at line 14444 of file sqlite3.c.

References sqlite3_strnicmp(), sqlite3IsIdChar(), and sqlite3Strlen30().

14444  {
14445  int i, n;
14446 
14447 #if SQLITE_ENABLE_API_ARMOR
14448  if( zOptName==0 ){
14449  (void)SQLITE_MISUSE_BKPT;
14450  return 0;
14451  }
14452 #endif
14453  if( sqlite3StrNICmp(zOptName, "SQLITE_", 7)==0 ) zOptName += 7;
14454  n = sqlite3Strlen30(zOptName);
14455 
14456  /* Since ArraySize(azCompileOpt) is normally in single digits, a
14457  ** linear search is adequate. No need for a binary search. */
14458  for(i=0; i<ArraySize(azCompileOpt); i++){
14459  if( sqlite3StrNICmp(zOptName, azCompileOpt[i], n)==0
14460  && sqlite3IsIdChar((unsigned char)azCompileOpt[i][n])==0
14461  ){
14462  return 1;
14463  }
14464  }
14465  return 0;
14466 }
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
#define ArraySize(X)
Definition: sqlite3.c:9198
#define sqlite3StrNICmp
Definition: sqlite3.c:12982
SQLITE_PRIVATE int sqlite3Strlen30(const char *)
Definition: sqlite3.c:23546
SQLITE_PRIVATE int sqlite3IsIdChar(u8)
Definition: sqlite3.c:127196

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_complete ( const char *  sql)

Definition at line 127718 of file sqlite3.c.

References sqlite3_strnicmp().

Referenced by sqlite3_complete16().

127718  {
127719  u8 state = 0; /* Current state, using numbers defined in header comment */
127720  u8 token; /* Value of the next token */
127721 
127722 #ifndef SQLITE_OMIT_TRIGGER
127723  /* A complex statement machine used to detect the end of a CREATE TRIGGER
127724  ** statement. This is the normal case.
127725  */
127726  static const u8 trans[8][8] = {
127727  /* Token: */
127728  /* State: ** SEMI WS OTHER EXPLAIN CREATE TEMP TRIGGER END */
127729  /* 0 INVALID: */ { 1, 0, 2, 3, 4, 2, 2, 2, },
127730  /* 1 START: */ { 1, 1, 2, 3, 4, 2, 2, 2, },
127731  /* 2 NORMAL: */ { 1, 2, 2, 2, 2, 2, 2, 2, },
127732  /* 3 EXPLAIN: */ { 1, 3, 3, 2, 4, 2, 2, 2, },
127733  /* 4 CREATE: */ { 1, 4, 2, 2, 2, 4, 5, 2, },
127734  /* 5 TRIGGER: */ { 6, 5, 5, 5, 5, 5, 5, 5, },
127735  /* 6 SEMI: */ { 6, 6, 5, 5, 5, 5, 5, 7, },
127736  /* 7 END: */ { 1, 7, 5, 5, 5, 5, 5, 5, },
127737  };
127738 #else
127739  /* If triggers are not supported by this compile then the statement machine
127740  ** used to detect the end of a statement is much simpler
127741  */
127742  static const u8 trans[3][3] = {
127743  /* Token: */
127744  /* State: ** SEMI WS OTHER */
127745  /* 0 INVALID: */ { 1, 0, 2, },
127746  /* 1 START: */ { 1, 1, 2, },
127747  /* 2 NORMAL: */ { 1, 2, 2, },
127748  };
127749 #endif /* SQLITE_OMIT_TRIGGER */
127750 
127751 #ifdef SQLITE_ENABLE_API_ARMOR
127752  if( zSql==0 ){
127753  (void)SQLITE_MISUSE_BKPT;
127754  return 0;
127755  }
127756 #endif
127757 
127758  while( *zSql ){
127759  switch( *zSql ){
127760  case ';': { /* A semicolon */
127761  token = tkSEMI;
127762  break;
127763  }
127764  case ' ':
127765  case '\r':
127766  case '\t':
127767  case '\n':
127768  case '\f': { /* White space is ignored */
127769  token = tkWS;
127770  break;
127771  }
127772  case '/': { /* C-style comments */
127773  if( zSql[1]!='*' ){
127774  token = tkOTHER;
127775  break;
127776  }
127777  zSql += 2;
127778  while( zSql[0] && (zSql[0]!='*' || zSql[1]!='/') ){ zSql++; }
127779  if( zSql[0]==0 ) return 0;
127780  zSql++;
127781  token = tkWS;
127782  break;
127783  }
127784  case '-': { /* SQL-style comments from "--" to end of line */
127785  if( zSql[1]!='-' ){
127786  token = tkOTHER;
127787  break;
127788  }
127789  while( *zSql && *zSql!='\n' ){ zSql++; }
127790  if( *zSql==0 ) return state==1;
127791  token = tkWS;
127792  break;
127793  }
127794  case '[': { /* Microsoft-style identifiers in [...] */
127795  zSql++;
127796  while( *zSql && *zSql!=']' ){ zSql++; }
127797  if( *zSql==0 ) return 0;
127798  token = tkOTHER;
127799  break;
127800  }
127801  case '`': /* Grave-accent quoted symbols used by MySQL */
127802  case '"': /* single- and double-quoted strings */
127803  case '\'': {
127804  int c = *zSql;
127805  zSql++;
127806  while( *zSql && *zSql!=c ){ zSql++; }
127807  if( *zSql==0 ) return 0;
127808  token = tkOTHER;
127809  break;
127810  }
127811  default: {
127812 #ifdef SQLITE_EBCDIC
127813  unsigned char c;
127814 #endif
127815  if( IdChar((u8)*zSql) ){
127816  /* Keywords and unquoted identifiers */
127817  int nId;
127818  for(nId=1; IdChar(zSql[nId]); nId++){}
127819 #ifdef SQLITE_OMIT_TRIGGER
127820  token = tkOTHER;
127821 #else
127822  switch( *zSql ){
127823  case 'c': case 'C': {
127824  if( nId==6 && sqlite3StrNICmp(zSql, "create", 6)==0 ){
127825  token = tkCREATE;
127826  }else{
127827  token = tkOTHER;
127828  }
127829  break;
127830  }
127831  case 't': case 'T': {
127832  if( nId==7 && sqlite3StrNICmp(zSql, "trigger", 7)==0 ){
127833  token = tkTRIGGER;
127834  }else if( nId==4 && sqlite3StrNICmp(zSql, "temp", 4)==0 ){
127835  token = tkTEMP;
127836  }else if( nId==9 && sqlite3StrNICmp(zSql, "temporary", 9)==0 ){
127837  token = tkTEMP;
127838  }else{
127839  token = tkOTHER;
127840  }
127841  break;
127842  }
127843  case 'e': case 'E': {
127844  if( nId==3 && sqlite3StrNICmp(zSql, "end", 3)==0 ){
127845  token = tkEND;
127846  }else
127847 #ifndef SQLITE_OMIT_EXPLAIN
127848  if( nId==7 && sqlite3StrNICmp(zSql, "explain", 7)==0 ){
127849  token = tkEXPLAIN;
127850  }else
127851 #endif
127852  {
127853  token = tkOTHER;
127854  }
127855  break;
127856  }
127857  default: {
127858  token = tkOTHER;
127859  break;
127860  }
127861  }
127862 #endif /* SQLITE_OMIT_TRIGGER */
127863  zSql += nId-1;
127864  }else{
127865  /* Operators and special symbols */
127866  token = tkOTHER;
127867  }
127868  break;
127869  }
127870  }
127871  state = trans[state][token];
127872  zSql++;
127873  }
127874  return state==1;
127875 }
#define tkCREATE
Definition: sqlite3.c:127659
#define tkEND
Definition: sqlite3.c:127662
UINT8_TYPE u8
Definition: sqlite3.c:8959
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
#define tkOTHER
Definition: sqlite3.c:127656
#define IdChar(C)
Definition: sqlite3.c:127176
#define tkTRIGGER
Definition: sqlite3.c:127661
#define sqlite3StrNICmp
Definition: sqlite3.c:12982
#define tkWS
Definition: sqlite3.c:127655
#define tkSEMI
Definition: sqlite3.c:127654
#define tkTEMP
Definition: sqlite3.c:127660
#define tkEXPLAIN
Definition: sqlite3.c:127658

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_complete16 ( const void *  sql)

Definition at line 127883 of file sqlite3.c.

References sqlite3_complete(), sqlite3_initialize(), sqlite3ApiExit(), sqlite3ValueFree(), sqlite3ValueNew(), and sqlite3ValueSetStr().

127883  {
127884  sqlite3_value *pVal;
127885  char const *zSql8;
127886  int rc;
127887 
127888 #ifndef SQLITE_OMIT_AUTOINIT
127889  rc = sqlite3_initialize();
127890  if( rc ) return rc;
127891 #endif
127892  pVal = sqlite3ValueNew(0);
127894  zSql8 = sqlite3ValueText(pVal, SQLITE_UTF8);
127895  if( zSql8 ){
127896  rc = sqlite3_complete(zSql8);
127897  }else{
127898  rc = SQLITE_NOMEM;
127899  }
127900  sqlite3ValueFree(pVal);
127901  return sqlite3ApiExit(0, rc);
127902 }
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
SQLITE_PRIVATE sqlite3_value * sqlite3ValueNew(sqlite3 *)
Definition: sqlite3.c:64183
#define SQLITE_NOMEM
Definition: sqlite3.c:619
SQLITE_API int SQLITE_STDCALL sqlite3_initialize(void)
Definition: sqlite3.c:128111
#define SQLITE_UTF8
Definition: sqlite3.c:4463
#define SQLITE_UTF16NATIVE
Definition: sqlite3.c:9055
SQLITE_PRIVATE void sqlite3ValueSetStr(sqlite3_value *, int, const void *, u8, void(*)(void *))
Definition: sqlite3.c:64779
SQLITE_API int SQLITE_STDCALL sqlite3_complete(const char *sql)
Definition: sqlite3.c:127718
SQLITE_PRIVATE void sqlite3ValueFree(sqlite3_value *)
Definition: sqlite3.c:64792
SQLITE_PRIVATE const void * sqlite3ValueText(sqlite3_value *, u8)
Definition: sqlite3.c:64166
#define SQLITE_STATIC
Definition: sqlite3.c:4701

Here is the call graph for this function:

SQLITE_API int SQLITE_CDECL sqlite3_config ( int  op,
  ... 
)

Definition at line 128326 of file sqlite3.c.

References Sqlite3Config::bCoreMutex, Sqlite3Config::bFullMutex, Sqlite3Config::isInit, Sqlite3Config::m, Sqlite3Config::mxMmap, Sqlite3Config::pcache2, sqlite3MemSetDefault(), sqlite3PCacheSetDefault(), Sqlite3Config::szMmap, sqlite3_pcache_methods2::xInit, and sqlite3_mem_methods::xMalloc.

Referenced by sqlite3MemSetDefault(), and sqlite3PCacheSetDefault().

128326  {
128327  va_list ap;
128328  int rc = SQLITE_OK;
128329 
128330  /* sqlite3_config() shall return SQLITE_MISUSE if it is invoked while
128331  ** the SQLite library is in use. */
128332  if( sqlite3GlobalConfig.isInit ) return SQLITE_MISUSE_BKPT;
128333 
128334  va_start(ap, op);
128335  switch( op ){
128336 
128337  /* Mutex configuration options are only available in a threadsafe
128338  ** compile.
128339  */
128340 #if defined(SQLITE_THREADSAFE) && SQLITE_THREADSAFE>0 /* IMP: R-54466-46756 */
128342  /* EVIDENCE-OF: R-02748-19096 This option sets the threading mode to
128343  ** Single-thread. */
128344  sqlite3GlobalConfig.bCoreMutex = 0; /* Disable mutex on core */
128345  sqlite3GlobalConfig.bFullMutex = 0; /* Disable mutex on connections */
128346  break;
128347  }
128348 #endif
128349 #if defined(SQLITE_THREADSAFE) && SQLITE_THREADSAFE>0 /* IMP: R-20520-54086 */
128350  case SQLITE_CONFIG_MULTITHREAD: {
128351  /* EVIDENCE-OF: R-14374-42468 This option sets the threading mode to
128352  ** Multi-thread. */
128353  sqlite3GlobalConfig.bCoreMutex = 1; /* Enable mutex on core */
128354  sqlite3GlobalConfig.bFullMutex = 0; /* Disable mutex on connections */
128355  break;
128356  }
128357 #endif
128358 #if defined(SQLITE_THREADSAFE) && SQLITE_THREADSAFE>0 /* IMP: R-59593-21810 */
128359  case SQLITE_CONFIG_SERIALIZED: {
128360  /* EVIDENCE-OF: R-41220-51800 This option sets the threading mode to
128361  ** Serialized. */
128362  sqlite3GlobalConfig.bCoreMutex = 1; /* Enable mutex on core */
128363  sqlite3GlobalConfig.bFullMutex = 1; /* Enable mutex on connections */
128364  break;
128365  }
128366 #endif
128367 #if defined(SQLITE_THREADSAFE) && SQLITE_THREADSAFE>0 /* IMP: R-63666-48755 */
128368  case SQLITE_CONFIG_MUTEX: {
128369  /* Specify an alternative mutex implementation */
128370  sqlite3GlobalConfig.mutex = *va_arg(ap, sqlite3_mutex_methods*);
128371  break;
128372  }
128373 #endif
128374 #if defined(SQLITE_THREADSAFE) && SQLITE_THREADSAFE>0 /* IMP: R-14450-37597 */
128375  case SQLITE_CONFIG_GETMUTEX: {
128376  /* Retrieve the current mutex implementation */
128377  *va_arg(ap, sqlite3_mutex_methods*) = sqlite3GlobalConfig.mutex;
128378  break;
128379  }
128380 #endif
128381 
128382  case SQLITE_CONFIG_MALLOC: {
128383  /* EVIDENCE-OF: R-55594-21030 The SQLITE_CONFIG_MALLOC option takes a
128384  ** single argument which is a pointer to an instance of the
128385  ** sqlite3_mem_methods structure. The argument specifies alternative
128386  ** low-level memory allocation routines to be used in place of the memory
128387  ** allocation routines built into SQLite. */
128388  sqlite3GlobalConfig.m = *va_arg(ap, sqlite3_mem_methods*);
128389  break;
128390  }
128391  case SQLITE_CONFIG_GETMALLOC: {
128392  /* EVIDENCE-OF: R-51213-46414 The SQLITE_CONFIG_GETMALLOC option takes a
128393  ** single argument which is a pointer to an instance of the
128394  ** sqlite3_mem_methods structure. The sqlite3_mem_methods structure is
128395  ** filled with the currently defined memory allocation routines. */
128396  if( sqlite3GlobalConfig.m.xMalloc==0 ) sqlite3MemSetDefault();
128397  *va_arg(ap, sqlite3_mem_methods*) = sqlite3GlobalConfig.m;
128398  break;
128399  }
128400  case SQLITE_CONFIG_MEMSTATUS: {
128401  /* EVIDENCE-OF: R-61275-35157 The SQLITE_CONFIG_MEMSTATUS option takes
128402  ** single argument of type int, interpreted as a boolean, which enables
128403  ** or disables the collection of memory allocation statistics. */
128404  sqlite3GlobalConfig.bMemstat = va_arg(ap, int);
128405  break;
128406  }
128407  case SQLITE_CONFIG_SCRATCH: {
128408  /* EVIDENCE-OF: R-08404-60887 There are three arguments to
128409  ** SQLITE_CONFIG_SCRATCH: A pointer an 8-byte aligned memory buffer from
128410  ** which the scratch allocations will be drawn, the size of each scratch
128411  ** allocation (sz), and the maximum number of scratch allocations (N). */
128412  sqlite3GlobalConfig.pScratch = va_arg(ap, void*);
128413  sqlite3GlobalConfig.szScratch = va_arg(ap, int);
128414  sqlite3GlobalConfig.nScratch = va_arg(ap, int);
128415  break;
128416  }
128417  case SQLITE_CONFIG_PAGECACHE: {
128418  /* EVIDENCE-OF: R-31408-40510 There are three arguments to
128419  ** SQLITE_CONFIG_PAGECACHE: A pointer to 8-byte aligned memory, the size
128420  ** of each page buffer (sz), and the number of pages (N). */
128421  sqlite3GlobalConfig.pPage = va_arg(ap, void*);
128422  sqlite3GlobalConfig.szPage = va_arg(ap, int);
128423  sqlite3GlobalConfig.nPage = va_arg(ap, int);
128424  break;
128425  }
128427  /* EVIDENCE-OF: R-39100-27317 The SQLITE_CONFIG_PCACHE_HDRSZ option takes
128428  ** a single parameter which is a pointer to an integer and writes into
128429  ** that integer the number of extra bytes per page required for each page
128430  ** in SQLITE_CONFIG_PAGECACHE. */
128431  *va_arg(ap, int*) =
128435  break;
128436  }
128437 
128438  case SQLITE_CONFIG_PCACHE: {
128439  /* no-op */
128440  break;
128441  }
128442  case SQLITE_CONFIG_GETPCACHE: {
128443  /* now an error */
128444  rc = SQLITE_ERROR;
128445  break;
128446  }
128447 
128448  case SQLITE_CONFIG_PCACHE2: {
128449  /* EVIDENCE-OF: R-63325-48378 The SQLITE_CONFIG_PCACHE2 option takes a
128450  ** single argument which is a pointer to an sqlite3_pcache_methods2
128451  ** object. This object specifies the interface to a custom page cache
128452  ** implementation. */
128453  sqlite3GlobalConfig.pcache2 = *va_arg(ap, sqlite3_pcache_methods2*);
128454  break;
128455  }
128456  case SQLITE_CONFIG_GETPCACHE2: {
128457  /* EVIDENCE-OF: R-22035-46182 The SQLITE_CONFIG_GETPCACHE2 option takes a
128458  ** single argument which is a pointer to an sqlite3_pcache_methods2
128459  ** object. SQLite copies of the current page cache implementation into
128460  ** that object. */
128461  if( sqlite3GlobalConfig.pcache2.xInit==0 ){
128463  }
128464  *va_arg(ap, sqlite3_pcache_methods2*) = sqlite3GlobalConfig.pcache2;
128465  break;
128466  }
128467 
128468 /* EVIDENCE-OF: R-06626-12911 The SQLITE_CONFIG_HEAP option is only
128469 ** available if SQLite is compiled with either SQLITE_ENABLE_MEMSYS3 or
128470 ** SQLITE_ENABLE_MEMSYS5 and returns SQLITE_ERROR if invoked otherwise. */
128471 #if defined(SQLITE_ENABLE_MEMSYS3) || defined(SQLITE_ENABLE_MEMSYS5)
128472  case SQLITE_CONFIG_HEAP: {
128473  /* EVIDENCE-OF: R-19854-42126 There are three arguments to
128474  ** SQLITE_CONFIG_HEAP: An 8-byte aligned pointer to the memory, the
128475  ** number of bytes in the memory buffer, and the minimum allocation size.
128476  */
128477  sqlite3GlobalConfig.pHeap = va_arg(ap, void*);
128478  sqlite3GlobalConfig.nHeap = va_arg(ap, int);
128479  sqlite3GlobalConfig.mnReq = va_arg(ap, int);
128480 
128481  if( sqlite3GlobalConfig.mnReq<1 ){
128482  sqlite3GlobalConfig.mnReq = 1;
128483  }else if( sqlite3GlobalConfig.mnReq>(1<<12) ){
128484  /* cap min request size at 2^12 */
128485  sqlite3GlobalConfig.mnReq = (1<<12);
128486  }
128487 
128488  if( sqlite3GlobalConfig.pHeap==0 ){
128489  /* EVIDENCE-OF: R-49920-60189 If the first pointer (the memory pointer)
128490  ** is NULL, then SQLite reverts to using its default memory allocator
128491  ** (the system malloc() implementation), undoing any prior invocation of
128492  ** SQLITE_CONFIG_MALLOC.
128493  **
128494  ** Setting sqlite3GlobalConfig.m to all zeros will cause malloc to
128495  ** revert to its default implementation when sqlite3_initialize() is run
128496  */
128497  memset(&sqlite3GlobalConfig.m, 0, sizeof(sqlite3GlobalConfig.m));
128498  }else{
128499  /* EVIDENCE-OF: R-61006-08918 If the memory pointer is not NULL then the
128500  ** alternative memory allocator is engaged to handle all of SQLites
128501  ** memory allocation needs. */
128502 #ifdef SQLITE_ENABLE_MEMSYS3
128503  sqlite3GlobalConfig.m = *sqlite3MemGetMemsys3();
128504 #endif
128505 #ifdef SQLITE_ENABLE_MEMSYS5
128506  sqlite3GlobalConfig.m = *sqlite3MemGetMemsys5();
128507 #endif
128508  }
128509  break;
128510  }
128511 #endif
128512 
128513  case SQLITE_CONFIG_LOOKASIDE: {
128514  sqlite3GlobalConfig.szLookaside = va_arg(ap, int);
128515  sqlite3GlobalConfig.nLookaside = va_arg(ap, int);
128516  break;
128517  }
128518 
128519  /* Record a pointer to the logger function and its first argument.
128520  ** The default is NULL. Logging is disabled if the function pointer is
128521  ** NULL.
128522  */
128523  case SQLITE_CONFIG_LOG: {
128524  /* MSVC is picky about pulling func ptrs from va lists.
128525  ** http://support.microsoft.com/kb/47961
128526  ** sqlite3GlobalConfig.xLog = va_arg(ap, void(*)(void*,int,const char*));
128527  */
128528  typedef void(*LOGFUNC_t)(void*,int,const char*);
128529  sqlite3GlobalConfig.xLog = va_arg(ap, LOGFUNC_t);
128530  sqlite3GlobalConfig.pLogArg = va_arg(ap, void*);
128531  break;
128532  }
128533 
128534  /* EVIDENCE-OF: R-55548-33817 The compile-time setting for URI filenames
128535  ** can be changed at start-time using the
128536  ** sqlite3_config(SQLITE_CONFIG_URI,1) or
128537  ** sqlite3_config(SQLITE_CONFIG_URI,0) configuration calls.
128538  */
128539  case SQLITE_CONFIG_URI: {
128540  /* EVIDENCE-OF: R-25451-61125 The SQLITE_CONFIG_URI option takes a single
128541  ** argument of type int. If non-zero, then URI handling is globally
128542  ** enabled. If the parameter is zero, then URI handling is globally
128543  ** disabled. */
128544  sqlite3GlobalConfig.bOpenUri = va_arg(ap, int);
128545  break;
128546  }
128547 
128549  /* EVIDENCE-OF: R-36592-02772 The SQLITE_CONFIG_COVERING_INDEX_SCAN
128550  ** option takes a single integer argument which is interpreted as a
128551  ** boolean in order to enable or disable the use of covering indices for
128552  ** full table scans in the query optimizer. */
128553  sqlite3GlobalConfig.bUseCis = va_arg(ap, int);
128554  break;
128555  }
128556 
128557 #ifdef SQLITE_ENABLE_SQLLOG
128558  case SQLITE_CONFIG_SQLLOG: {
128559  typedef void(*SQLLOGFUNC_t)(void*, sqlite3*, const char*, int);
128560  sqlite3GlobalConfig.xSqllog = va_arg(ap, SQLLOGFUNC_t);
128561  sqlite3GlobalConfig.pSqllogArg = va_arg(ap, void *);
128562  break;
128563  }
128564 #endif
128565 
128566  case SQLITE_CONFIG_MMAP_SIZE: {
128567  /* EVIDENCE-OF: R-58063-38258 SQLITE_CONFIG_MMAP_SIZE takes two 64-bit
128568  ** integer (sqlite3_int64) values that are the default mmap size limit
128569  ** (the default setting for PRAGMA mmap_size) and the maximum allowed
128570  ** mmap size limit. */
128571  sqlite3_int64 szMmap = va_arg(ap, sqlite3_int64);
128572  sqlite3_int64 mxMmap = va_arg(ap, sqlite3_int64);
128573  /* EVIDENCE-OF: R-53367-43190 If either argument to this option is
128574  ** negative, then that argument is changed to its compile-time default.
128575  **
128576  ** EVIDENCE-OF: R-34993-45031 The maximum allowed mmap size will be
128577  ** silently truncated if necessary so that it does not exceed the
128578  ** compile-time maximum mmap size set by the SQLITE_MAX_MMAP_SIZE
128579  ** compile-time option.
128580  */
128581  if( mxMmap<0 || mxMmap>SQLITE_MAX_MMAP_SIZE ){
128582  mxMmap = SQLITE_MAX_MMAP_SIZE;
128583  }
128584  if( szMmap<0 ) szMmap = SQLITE_DEFAULT_MMAP_SIZE;
128585  if( szMmap>mxMmap) szMmap = mxMmap;
128586  sqlite3GlobalConfig.mxMmap = mxMmap;
128587  sqlite3GlobalConfig.szMmap = szMmap;
128588  break;
128589  }
128590 
128591 #if SQLITE_OS_WIN && defined(SQLITE_WIN32_MALLOC) /* IMP: R-04780-55815 */
128593  /* EVIDENCE-OF: R-34926-03360 SQLITE_CONFIG_WIN32_HEAPSIZE takes a 32-bit
128594  ** unsigned integer value that specifies the maximum size of the created
128595  ** heap. */
128596  sqlite3GlobalConfig.nHeap = va_arg(ap, int);
128597  break;
128598  }
128599 #endif
128600 
128601  case SQLITE_CONFIG_PMASZ: {
128602  sqlite3GlobalConfig.szPma = va_arg(ap, unsigned int);
128603  break;
128604  }
128605 
128606  default: {
128607  rc = SQLITE_ERROR;
128608  break;
128609  }
128610  }
128611  va_end(ap);
128612  return rc;
128613 }
#define SQLITE_CONFIG_GETMUTEX
Definition: sqlite3.c:2007
#define SQLITE_CONFIG_GETPCACHE2
Definition: sqlite3.c:2015
#define SQLITE_CONFIG_PCACHE2
Definition: sqlite3.c:2014
#define SQLITE_CONFIG_COVERING_INDEX_SCAN
Definition: sqlite3.c:2016
#define SQLITE_CONFIG_PAGECACHE
Definition: sqlite3.c:2003
#define sqlite3GlobalConfig
Definition: sqlite3.c:9238
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
#define SQLITE_CONFIG_GETPCACHE
Definition: sqlite3.c:2011
#define SQLITE_ERROR
Definition: sqlite3.c:613
#define SQLITE_DEFAULT_MMAP_SIZE
Definition: sqlite3.c:9128
SQLITE_PRIVATE int sqlite3HeaderSizeBtree(void)
Definition: sqlite3.c:62329
#define SQLITE_CONFIG_SCRATCH
Definition: sqlite3.c:2002
#define SQLITE_CONFIG_HEAP
Definition: sqlite3.c:2004
SQLITE_PRIVATE int sqlite3HeaderSizePcache(void)
Definition: sqlite3.c:39941
#define SQLITE_CONFIG_URI
Definition: sqlite3.c:2013
#define SQLITE_CONFIG_LOOKASIDE
Definition: sqlite3.c:2009
sqlite_int64 sqlite3_int64
Definition: sqlite3.c:467
#define SQLITE_CONFIG_MALLOC
Definition: sqlite3.c:2000
#define SQLITE_CONFIG_LOG
Definition: sqlite3.c:2012
#define SQLITE_CONFIG_PCACHE_HDRSZ
Definition: sqlite3.c:2020
#define SQLITE_CONFIG_MMAP_SIZE
Definition: sqlite3.c:2018
#define SQLITE_CONFIG_WIN32_HEAPSIZE
Definition: sqlite3.c:2019
#define SQLITE_CONFIG_MULTITHREAD
Definition: sqlite3.c:1998
#define SQLITE_CONFIG_SQLLOG
Definition: sqlite3.c:2017
SQLITE_PRIVATE int sqlite3HeaderSizePcache1(void)
Definition: sqlite3.c:40946
#define SQLITE_CONFIG_MUTEX
Definition: sqlite3.c:2006
#define SQLITE_CONFIG_SINGLETHREAD
Definition: sqlite3.c:1997
#define SQLITE_CONFIG_GETMALLOC
Definition: sqlite3.c:2001
#define SQLITE_CONFIG_PMASZ
Definition: sqlite3.c:2021
SQLITE_PRIVATE void sqlite3PCacheSetDefault(void)
Definition: sqlite3.c:40924
#define SQLITE_OK
Definition: sqlite3.c:611
#define SQLITE_MAX_MMAP_SIZE
Definition: sqlite3.c:9117
#define SQLITE_CONFIG_SERIALIZED
Definition: sqlite3.c:1999
#define SQLITE_CONFIG_MEMSTATUS
Definition: sqlite3.c:2005
#define SQLITE_CONFIG_PCACHE
Definition: sqlite3.c:2010
SQLITE_PRIVATE void sqlite3MemSetDefault(void)
Definition: sqlite3.c:17290

Here is the call graph for this function:

SQLITE_API sqlite3 *SQLITE_STDCALL sqlite3_context_db_handle ( sqlite3_context p)

Definition at line 69636 of file sqlite3.c.

References sqlite3_value::db, and sqlite3_context::pOut.

69636  {
69637  assert( p && p->pFunc );
69638  return p->pOut->db;
69639 }
FuncDef * pFunc
Definition: sqlite3.c:14773
sqlite3 * db
Definition: sqlite3.c:14680
SQLITE_API int SQLITE_STDCALL sqlite3_create_collation ( sqlite3 db,
const char *  zName,
int  eTextRep,
void *  pArg,
int(*)(void *, int, const void *, int, const void *)  xCompare 
)

Definition at line 130967 of file sqlite3.c.

References sqlite3_create_collation_v2().

130973  {
130974  return sqlite3_create_collation_v2(db, zName, enc, pCtx, xCompare, 0);
130975 }
SQLITE_API int SQLITE_STDCALL sqlite3_create_collation_v2(sqlite3 *, const char *zName, int eTextRep, void *pArg, int(*xCompare)(void *, int, const void *, int, const void *), void(*xDestroy)(void *))
Definition: sqlite3.c:130980

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_create_collation16 ( sqlite3 db,
const void *  zName,
int  eTextRep,
void *  pArg,
int(*)(void *, int, const void *, int, const void *)  xCompare 
)

Definition at line 131005 of file sqlite3.c.

References sqlite3::mutex, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3ApiExit(), sqlite3DbFree(), and sqlite3Utf16to8().

131011  {
131012  int rc = SQLITE_OK;
131013  char *zName8;
131014 
131015 #ifdef SQLITE_ENABLE_API_ARMOR
131016  if( !sqlite3SafetyCheckOk(db) || zName==0 ) return SQLITE_MISUSE_BKPT;
131017 #endif
131018  sqlite3_mutex_enter(db->mutex);
131019  assert( !db->mallocFailed );
131020  zName8 = sqlite3Utf16to8(db, zName, -1, SQLITE_UTF16NATIVE);
131021  if( zName8 ){
131022  rc = createCollation(db, zName8, (u8)enc, pCtx, xCompare, 0);
131023  sqlite3DbFree(db, zName8);
131024  }
131025  rc = sqlite3ApiExit(db, rc);
131026  sqlite3_mutex_leave(db->mutex);
131027  return rc;
131028 }
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_PRIVATE char * sqlite3Utf16to8(sqlite3 *, const void *, int, u8)
Definition: sqlite3.c:23344
UINT8_TYPE u8
Definition: sqlite3.c:8959
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
#define SQLITE_UTF16NATIVE
Definition: sqlite3.c:9055
u8 mallocFailed
Definition: sqlite3.c:11008
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_create_collation_v2 ( sqlite3 db,
const char *  zName,
int  eTextRep,
void *  pArg,
int(*)(void *, int, const void *, int, const void *)  xCompare,
void(*)(void *)  xDestroy 
)

Definition at line 130980 of file sqlite3.c.

References sqlite3::mutex, sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3ApiExit().

Referenced by sqlite3_create_collation().

130987  {
130988  int rc;
130989 
130990 #ifdef SQLITE_ENABLE_API_ARMOR
130991  if( !sqlite3SafetyCheckOk(db) || zName==0 ) return SQLITE_MISUSE_BKPT;
130992 #endif
130993  sqlite3_mutex_enter(db->mutex);
130994  assert( !db->mallocFailed );
130995  rc = createCollation(db, zName, (u8)enc, pCtx, xCompare, xDel);
130996  rc = sqlite3ApiExit(db, rc);
130997  sqlite3_mutex_leave(db->mutex);
130998  return rc;
130999 }
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
UINT8_TYPE u8
Definition: sqlite3.c:8959
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
u8 mallocFailed
Definition: sqlite3.c:11008
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_create_function ( sqlite3 db,
const char *  zFunctionName,
int  nArg,
int  eTextRep,
void *  pApp,
void(*)(sqlite3_context *, int, sqlite3_value **)  xFunc,
void(*)(sqlite3_context *, int, sqlite3_value **)  xStep,
void(*)(sqlite3_context *)  xFinal 
)

Definition at line 129602 of file sqlite3.c.

References sqlite3_create_function_v2().

129611  {
129612  return sqlite3_create_function_v2(db, zFunc, nArg, enc, p, xFunc, xStep,
129613  xFinal, 0);
129614 }
SQLITE_API int SQLITE_STDCALL sqlite3_create_function_v2(sqlite3 *db, const char *zFunctionName, int nArg, int eTextRep, void *pApp, void(*xFunc)(sqlite3_context *, int, sqlite3_value **), void(*xStep)(sqlite3_context *, int, sqlite3_value **), void(*xFinal)(sqlite3_context *), void(*xDestroy)(void *))
Definition: sqlite3.c:129616

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_create_function16 ( sqlite3 db,
const void *  zFunctionName,
int  nArg,
int  eTextRep,
void *  pApp,
void(*)(sqlite3_context *, int, sqlite3_value **)  xFunc,
void(*)(sqlite3_context *, int, sqlite3_value **)  xStep,
void(*)(sqlite3_context *)  xFinal 
)

Definition at line 129659 of file sqlite3.c.

References sqlite3::mutex, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3ApiExit(), sqlite3CreateFunc(), sqlite3DbFree(), and sqlite3Utf16to8().

129668  {
129669  int rc;
129670  char *zFunc8;
129671 
129672 #ifdef SQLITE_ENABLE_API_ARMOR
129673  if( !sqlite3SafetyCheckOk(db) || zFunctionName==0 ) return SQLITE_MISUSE_BKPT;
129674 #endif
129675  sqlite3_mutex_enter(db->mutex);
129676  assert( !db->mallocFailed );
129677  zFunc8 = sqlite3Utf16to8(db, zFunctionName, -1, SQLITE_UTF16NATIVE);
129678  rc = sqlite3CreateFunc(db, zFunc8, nArg, eTextRep, p, xFunc, xStep, xFinal,0);
129679  sqlite3DbFree(db, zFunc8);
129680  rc = sqlite3ApiExit(db, rc);
129681  sqlite3_mutex_leave(db->mutex);
129682  return rc;
129683 }
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_PRIVATE char * sqlite3Utf16to8(sqlite3 *, const void *, int, u8)
Definition: sqlite3.c:23344
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
#define SQLITE_UTF16NATIVE
Definition: sqlite3.c:9055
SQLITE_PRIVATE int sqlite3CreateFunc(sqlite3 *, const char *, int, int, void *, void(*)(sqlite3_context *, int, sqlite3_value **), void(*)(sqlite3_context *, int, sqlite3_value **), void(*)(sqlite3_context *), FuncDestructor *pDestructor)
Definition: sqlite3.c:129502
u8 mallocFailed
Definition: sqlite3.c:11008
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_create_function_v2 ( sqlite3 db,
const char *  zFunctionName,
int  nArg,
int  eTextRep,
void *  pApp,
void(*)(sqlite3_context *, int, sqlite3_value **)  xFunc,
void(*)(sqlite3_context *, int, sqlite3_value **)  xStep,
void(*)(sqlite3_context *)  xFinal,
void(*)(void *)  xDestroy 
)

Definition at line 129616 of file sqlite3.c.

References sqlite3::mutex, FuncDestructor::nRef, FuncDestructor::pUserData, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3ApiExit(), sqlite3CreateFunc(), sqlite3DbFree(), sqlite3DbMallocZero(), and FuncDestructor::xDestroy.

Referenced by sqlite3_create_function().

129626  {
129627  int rc = SQLITE_ERROR;
129628  FuncDestructor *pArg = 0;
129629 
129630 #ifdef SQLITE_ENABLE_API_ARMOR
129631  if( !sqlite3SafetyCheckOk(db) ){
129632  return SQLITE_MISUSE_BKPT;
129633  }
129634 #endif
129635  sqlite3_mutex_enter(db->mutex);
129636  if( xDestroy ){
129637  pArg = (FuncDestructor *)sqlite3DbMallocZero(db, sizeof(FuncDestructor));
129638  if( !pArg ){
129639  xDestroy(p);
129640  goto out;
129641  }
129642  pArg->xDestroy = xDestroy;
129643  pArg->pUserData = p;
129644  }
129645  rc = sqlite3CreateFunc(db, zFunc, nArg, enc, p, xFunc, xStep, xFinal, pArg);
129646  if( pArg && pArg->nRef==0 ){
129647  assert( rc!=SQLITE_OK );
129648  xDestroy(p);
129649  sqlite3DbFree(db, pArg);
129650  }
129651 
129652  out:
129653  rc = sqlite3ApiExit(db, rc);
129654  sqlite3_mutex_leave(db->mutex);
129655  return rc;
129656 }
void * pUserData
Definition: sqlite3.c:11232
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
void(* xDestroy)(void *)
Definition: sqlite3.c:11231
#define SQLITE_ERROR
Definition: sqlite3.c:613
SQLITE_PRIVATE int sqlite3CreateFunc(sqlite3 *, const char *, int, int, void *, void(*)(sqlite3_context *, int, sqlite3_value **), void(*)(sqlite3_context *, int, sqlite3_value **), void(*)(sqlite3_context *), FuncDestructor *pDestructor)
Definition: sqlite3.c:129502
SQLITE_PRIVATE void * sqlite3DbMallocZero(sqlite3 *, u64)
Definition: sqlite3.c:21149
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_create_module ( sqlite3 db,
const char *  zName,
const sqlite3_module p,
void *  pClientData 
)

Definition at line 114638 of file sqlite3.c.

114643  {
114644 #ifdef SQLITE_ENABLE_API_ARMOR
114645  if( !sqlite3SafetyCheckOk(db) || zName==0 ) return SQLITE_MISUSE_BKPT;
114646 #endif
114647  return createModule(db, zName, pModule, pAux, 0);
114648 }
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API int SQLITE_STDCALL sqlite3_create_module_v2 ( sqlite3 db,
const char *  zName,
const sqlite3_module p,
void *  pClientData,
void(*)(void *)  xDestroy 
)

Definition at line 114653 of file sqlite3.c.

114659  {
114660 #ifdef SQLITE_ENABLE_API_ARMOR
114661  if( !sqlite3SafetyCheckOk(db) || zName==0 ) return SQLITE_MISUSE_BKPT;
114662 #endif
114663  return createModule(db, zName, pModule, pAux, xDestroy);
114664 }
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API int SQLITE_STDCALL sqlite3_data_count ( sqlite3_stmt pStmt)

Definition at line 69821 of file sqlite3.c.

References Vdbe::nResColumn, and Vdbe::pResultSet.

69821  {
69822  Vdbe *pVm = (Vdbe *)pStmt;
69823  if( pVm==0 || pVm->pResultSet==0 ) return 0;
69824  return pVm->nResColumn;
69825 }
Mem * pResultSet
Definition: sqlite3.c:14822
u16 nResColumn
Definition: sqlite3.c:14841
SQLITE_API int SQLITE_CDECL sqlite3_db_config ( sqlite3 db,
int  op,
  ... 
)

Definition at line 128720 of file sqlite3.c.

References sqlite3::flags, and sqlite3ExpirePreparedStatements().

128720  {
128721  va_list ap;
128722  int rc;
128723  va_start(ap, op);
128724  switch( op ){
128725  case SQLITE_DBCONFIG_LOOKASIDE: {
128726  void *pBuf = va_arg(ap, void*); /* IMP: R-26835-10964 */
128727  int sz = va_arg(ap, int); /* IMP: R-47871-25994 */
128728  int cnt = va_arg(ap, int); /* IMP: R-04460-53386 */
128729  rc = setupLookaside(db, pBuf, sz, cnt);
128730  break;
128731  }
128732  default: {
128733  static const struct {
128734  int op; /* The opcode */
128735  u32 mask; /* Mask of the bit in sqlite3.flags to set/clear */
128736  } aFlagOp[] = {
128739  };
128740  unsigned int i;
128741  rc = SQLITE_ERROR; /* IMP: R-42790-23372 */
128742  for(i=0; i<ArraySize(aFlagOp); i++){
128743  if( aFlagOp[i].op==op ){
128744  int onoff = va_arg(ap, int);
128745  int *pRes = va_arg(ap, int*);
128746  int oldFlags = db->flags;
128747  if( onoff>0 ){
128748  db->flags |= aFlagOp[i].mask;
128749  }else if( onoff==0 ){
128750  db->flags &= ~aFlagOp[i].mask;
128751  }
128752  if( oldFlags!=db->flags ){
128754  }
128755  if( pRes ){
128756  *pRes = (db->flags & aFlagOp[i].mask)!=0;
128757  }
128758  rc = SQLITE_OK;
128759  break;
128760  }
128761  }
128762  break;
128763  }
128764  }
128765  va_end(ap);
128766  return rc;
128767 }
#define SQLITE_DBCONFIG_ENABLE_TRIGGER
Definition: sqlite3.c:2083
SQLITE_PRIVATE void sqlite3ExpirePreparedStatements(sqlite3 *)
Definition: sqlite3.c:68940
#define SQLITE_ERROR
Definition: sqlite3.c:613
#define ArraySize(X)
Definition: sqlite3.c:9198
#define SQLITE_EnableTrigger
Definition: sqlite3.c:11141
UINT32_TYPE u32
Definition: sqlite3.c:8956
#define SQLITE_DBCONFIG_ENABLE_FKEY
Definition: sqlite3.c:2082
#define SQLITE_ForeignKeys
Definition: sqlite3.c:11137
#define SQLITE_OK
Definition: sqlite3.c:611
int flags
Definition: sqlite3.c:10998
#define SQLITE_DBCONFIG_LOOKASIDE
Definition: sqlite3.c:2081

Here is the call graph for this function:

SQLITE_API const char *SQLITE_STDCALL sqlite3_db_filename ( sqlite3 db,
const char *  zDbName 
)

Definition at line 131729 of file sqlite3.c.

References sqlite3BtreeGetFilename(), and sqlite3DbNameToBtree().

131729  {
131730  Btree *pBt;
131731 #ifdef SQLITE_ENABLE_API_ARMOR
131732  if( !sqlite3SafetyCheckOk(db) ){
131733  (void)SQLITE_MISUSE_BKPT;
131734  return 0;
131735  }
131736 #endif
131737  pBt = sqlite3DbNameToBtree(db, zDbName);
131738  return pBt ? sqlite3BtreeGetFilename(pBt) : 0;
131739 }
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_PRIVATE const char * sqlite3BtreeGetFilename(Btree *)
Definition: sqlite3.c:62063
SQLITE_PRIVATE Btree * sqlite3DbNameToBtree(sqlite3 *, const char *)
Definition: sqlite3.c:131713
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599

Here is the call graph for this function:

SQLITE_API sqlite3 *SQLITE_STDCALL sqlite3_db_handle ( sqlite3_stmt pStmt)

Definition at line 70456 of file sqlite3.c.

References Vdbe::db.

70456  {
70457  return pStmt ? ((Vdbe*)pStmt)->db : 0;
70458 }
SQLITE_API sqlite3_mutex *SQLITE_STDCALL sqlite3_db_mutex ( sqlite3 db)

Definition at line 128683 of file sqlite3.c.

References sqlite3::mutex.

128683  {
128684 #ifdef SQLITE_ENABLE_API_ARMOR
128685  if( !sqlite3SafetyCheckOk(db) ){
128686  (void)SQLITE_MISUSE_BKPT;
128687  return 0;
128688  }
128689 #endif
128690  return db->mutex;
128691 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API int SQLITE_STDCALL sqlite3_db_readonly ( sqlite3 db,
const char *  zDbName 
)

Definition at line 131745 of file sqlite3.c.

References sqlite3BtreeIsReadonly(), and sqlite3DbNameToBtree().

131745  {
131746  Btree *pBt;
131747 #ifdef SQLITE_ENABLE_API_ARMOR
131748  if( !sqlite3SafetyCheckOk(db) ){
131749  (void)SQLITE_MISUSE_BKPT;
131750  return -1;
131751  }
131752 #endif
131753  pBt = sqlite3DbNameToBtree(db, zDbName);
131754  return pBt ? sqlite3BtreeIsReadonly(pBt) : -1;
131755 }
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_PRIVATE int sqlite3BtreeIsReadonly(Btree *pBt)
Definition: sqlite3.c:62322
SQLITE_PRIVATE Btree * sqlite3DbNameToBtree(sqlite3 *, const char *)
Definition: sqlite3.c:131713
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_db_release_memory ( sqlite3 db)

Definition at line 128697 of file sqlite3.c.

References sqlite3::aDb, sqlite3::mutex, sqlite3::nDb, Db::pBt, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3BtreeEnterAll(), sqlite3BtreeLeaveAll(), sqlite3BtreePager(), and sqlite3PagerShrink().

Referenced by sqlite3Pragma().

128697  {
128698  int i;
128699 
128700 #ifdef SQLITE_ENABLE_API_ARMOR
128701  if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
128702 #endif
128703  sqlite3_mutex_enter(db->mutex);
128704  sqlite3BtreeEnterAll(db);
128705  for(i=0; i<db->nDb; i++){
128706  Btree *pBt = db->aDb[i].pBt;
128707  if( pBt ){
128708  Pager *pPager = sqlite3BtreePager(pBt);
128709  sqlite3PagerShrink(pPager);
128710  }
128711  }
128712  sqlite3BtreeLeaveAll(db);
128713  sqlite3_mutex_leave(db->mutex);
128714  return SQLITE_OK;
128715 }
SQLITE_PRIVATE struct Pager * sqlite3BtreePager(Btree *)
Definition: sqlite3.c:61436
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
int nDb
Definition: sqlite3.c:10997
SQLITE_PRIVATE void sqlite3PagerShrink(Pager *)
Definition: sqlite3.c:45074
Btree * pBt
Definition: sqlite3.c:10839
SQLITE_PRIVATE void sqlite3BtreeLeaveAll(sqlite3 *)
Definition: sqlite3.c:52989
SQLITE_PRIVATE void sqlite3BtreeEnterAll(sqlite3 *)
Definition: sqlite3.c:52980
Db * aDb
Definition: sqlite3.c:10996
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_db_status ( sqlite3 db,
int  op,
int *  pCur,
int *  pHiwtr,
int  resetFlg 
)

Definition at line 15151 of file sqlite3.c.

References sqlite3::aDb, Lookaside::anStat, Hash::count, Schema::fkeyHash, Schema::idxHash, sqlite3::lookaside, Sqlite3Config::m, sqlite3::mutex, Lookaside::mxOut, sqlite3::nDb, sqlite3::nDeferredCons, sqlite3::nDeferredImmCons, Lookaside::nOut, Db::pBt, sqlite3::pnBytesFreed, Vdbe::pNext, Db::pSchema, sqlite3::pVdbe, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3BtreeEnterAll(), sqlite3BtreeLeaveAll(), sqlite3BtreePager(), sqlite3DbFree(), sqlite3DeleteTable(), sqlite3DeleteTrigger(), sqlite3MallocSize(), sqlite3PagerCacheStat(), sqlite3PagerMemUsed(), sqlite3VdbeClearObject(), Schema::tblHash, Schema::trigHash, and sqlite3_mem_methods::xRoundup.

15157  {
15158  int rc = SQLITE_OK; /* Return code */
15159 #ifdef SQLITE_ENABLE_API_ARMOR
15160  if( !sqlite3SafetyCheckOk(db) || pCurrent==0|| pHighwater==0 ){
15161  return SQLITE_MISUSE_BKPT;
15162  }
15163 #endif
15165  switch( op ){
15167  *pCurrent = db->lookaside.nOut;
15168  *pHighwater = db->lookaside.mxOut;
15169  if( resetFlag ){
15170  db->lookaside.mxOut = db->lookaside.nOut;
15171  }
15172  break;
15173  }
15174 
15181  assert( (op-SQLITE_DBSTATUS_LOOKASIDE_HIT)>=0 );
15182  assert( (op-SQLITE_DBSTATUS_LOOKASIDE_HIT)<3 );
15183  *pCurrent = 0;
15184  *pHighwater = db->lookaside.anStat[op - SQLITE_DBSTATUS_LOOKASIDE_HIT];
15185  if( resetFlag ){
15187  }
15188  break;
15189  }
15190 
15191  /*
15192  ** Return an approximation for the amount of memory currently used
15193  ** by all pagers associated with the given database connection. The
15194  ** highwater mark is meaningless and is returned as zero.
15195  */
15197  int totalUsed = 0;
15198  int i;
15200  for(i=0; i<db->nDb; i++){
15201  Btree *pBt = db->aDb[i].pBt;
15202  if( pBt ){
15203  Pager *pPager = sqlite3BtreePager(pBt);
15204  totalUsed += sqlite3PagerMemUsed(pPager);
15205  }
15206  }
15208  *pCurrent = totalUsed;
15209  *pHighwater = 0;
15210  break;
15211  }
15212 
15213  /*
15214  ** *pCurrent gets an accurate estimate of the amount of memory used
15215  ** to store the schema for all databases (main, temp, and any ATTACHed
15216  ** databases. *pHighwater is set to zero.
15217  */
15219  int i; /* Used to iterate through schemas */
15220  int nByte = 0; /* Used to accumulate return value */
15221 
15223  db->pnBytesFreed = &nByte;
15224  for(i=0; i<db->nDb; i++){
15225  Schema *pSchema = db->aDb[i].pSchema;
15226  if( ALWAYS(pSchema!=0) ){
15227  HashElem *p;
15228 
15229  nByte += sqlite3GlobalConfig.m.xRoundup(sizeof(HashElem)) * (
15230  pSchema->tblHash.count
15231  + pSchema->trigHash.count
15232  + pSchema->idxHash.count
15233  + pSchema->fkeyHash.count
15234  );
15235  nByte += sqlite3MallocSize(pSchema->tblHash.ht);
15236  nByte += sqlite3MallocSize(pSchema->trigHash.ht);
15237  nByte += sqlite3MallocSize(pSchema->idxHash.ht);
15238  nByte += sqlite3MallocSize(pSchema->fkeyHash.ht);
15239 
15240  for(p=sqliteHashFirst(&pSchema->trigHash); p; p=sqliteHashNext(p)){
15242  }
15243  for(p=sqliteHashFirst(&pSchema->tblHash); p; p=sqliteHashNext(p)){
15245  }
15246  }
15247  }
15248  db->pnBytesFreed = 0;
15250 
15251  *pHighwater = 0;
15252  *pCurrent = nByte;
15253  break;
15254  }
15255 
15256  /*
15257  ** *pCurrent gets an accurate estimate of the amount of memory used
15258  ** to store all prepared statements.
15259  ** *pHighwater is set to zero.
15260  */
15262  struct Vdbe *pVdbe; /* Used to iterate through VMs */
15263  int nByte = 0; /* Used to accumulate return value */
15264 
15265  db->pnBytesFreed = &nByte;
15266  for(pVdbe=db->pVdbe; pVdbe; pVdbe=pVdbe->pNext){
15267  sqlite3VdbeClearObject(db, pVdbe);
15268  sqlite3DbFree(db, pVdbe);
15269  }
15270  db->pnBytesFreed = 0;
15271 
15272  *pHighwater = 0; /* IMP: R-64479-57858 */
15273  *pCurrent = nByte;
15274 
15275  break;
15276  }
15277 
15278  /*
15279  ** Set *pCurrent to the total cache hits or misses encountered by all
15280  ** pagers the database handle is connected to. *pHighwater is always set
15281  ** to zero.
15282  */
15286  int i;
15287  int nRet = 0;
15290 
15291  for(i=0; i<db->nDb; i++){
15292  if( db->aDb[i].pBt ){
15293  Pager *pPager = sqlite3BtreePager(db->aDb[i].pBt);
15294  sqlite3PagerCacheStat(pPager, op, resetFlag, &nRet);
15295  }
15296  }
15297  *pHighwater = 0; /* IMP: R-42420-56072 */
15298  /* IMP: R-54100-20147 */
15299  /* IMP: R-29431-39229 */
15300  *pCurrent = nRet;
15301  break;
15302  }
15303 
15304  /* Set *pCurrent to non-zero if there are unresolved deferred foreign
15305  ** key constraints. Set *pCurrent to zero if all foreign key constraints
15306  ** have been satisfied. The *pHighwater is always set to zero.
15307  */
15309  *pHighwater = 0; /* IMP: R-11967-56545 */
15310  *pCurrent = db->nDeferredImmCons>0 || db->nDeferredCons>0;
15311  break;
15312  }
15313 
15314  default: {
15315  rc = SQLITE_ERROR;
15316  }
15317  }
15319  return rc;
15320 }
int anStat[3]
Definition: sqlite3.c:10930
SQLITE_PRIVATE struct Pager * sqlite3BtreePager(Btree *)
Definition: sqlite3.c:61436
#define SQLITE_DBSTATUS_CACHE_HIT
Definition: sqlite3.c:6831
SQLITE_PRIVATE void sqlite3DeleteTable(sqlite3 *, Table *)
Definition: sqlite3.c:91404
#define SQLITE_DBSTATUS_CACHE_WRITE
Definition: sqlite3.c:6833
#define SQLITE_DBSTATUS_LOOKASIDE_HIT
Definition: sqlite3.c:6828
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_PRIVATE int sqlite3PagerMemUsed(Pager *)
Definition: sqlite3.c:48073
i64 nDeferredCons
Definition: sqlite3.c:11081
#define SQLITE_DBSTATUS_LOOKASIDE_MISS_SIZE
Definition: sqlite3.c:6829
#define sqlite3GlobalConfig
Definition: sqlite3.c:9238
#define SQLITE_DBSTATUS_STMT_USED
Definition: sqlite3.c:6827
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
Hash idxHash
Definition: sqlite3.c:10865
#define ALWAYS(X)
Definition: sqlite3.c:8508
int rc
Definition: sqlite3.c:14837
#define SQLITE_ERROR
Definition: sqlite3.c:613
int nDb
Definition: sqlite3.c:10997
i64 nDeferredImmCons
Definition: sqlite3.c:11082
Schema * pSchema
Definition: sqlite3.c:10841
#define sqliteHashNext(E)
Definition: sqlite3.c:8616
unsigned int count
Definition: sqlite3.c:8575
#define SQLITE_DBSTATUS_LOOKASIDE_USED
Definition: sqlite3.c:6824
SQLITE_PRIVATE void sqlite3DeleteTrigger(sqlite3 *, Trigger *)
Definition: sqlite3.c:112753
SQLITE_PRIVATE void sqlite3PagerCacheStat(Pager *, int, int, int *)
Definition: sqlite3.c:48116
#define SQLITE_DBSTATUS_DEFERRED_FKS
Definition: sqlite3.c:6834
struct Hash::_ht * ht
#define SQLITE_DBSTATUS_CACHE_USED
Definition: sqlite3.c:6825
int * pnBytesFreed
Definition: sqlite3.c:11083
#define SQLITE_DBSTATUS_SCHEMA_USED
Definition: sqlite3.c:6826
Hash tblHash
Definition: sqlite3.c:10864
int nOut
Definition: sqlite3.c:10928
Btree * pBt
Definition: sqlite3.c:10839
struct Vdbe * pVdbe
Definition: sqlite3.c:10993
#define sqliteHashData(E)
Definition: sqlite3.c:8617
#define testcase(X)
Definition: sqlite3.c:8458
SQLITE_PRIVATE void sqlite3BtreeLeaveAll(sqlite3 *)
Definition: sqlite3.c:52989
SQLITE_PRIVATE void sqlite3BtreeEnterAll(sqlite3 *)
Definition: sqlite3.c:52980
Hash fkeyHash
Definition: sqlite3.c:10867
Db * aDb
Definition: sqlite3.c:10996
#define sqliteHashFirst(H)
Definition: sqlite3.c:8615
Lookaside lookaside
Definition: sqlite3.c:11056
Vdbe * pNext
Definition: sqlite3.c:14829
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
SQLITE_PRIVATE void sqlite3VdbeClearObject(sqlite3 *, Vdbe *)
Definition: sqlite3.c:67529
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_PRIVATE int sqlite3MallocSize(void *)
Definition: sqlite3.c:20981
int mxOut
Definition: sqlite3.c:10929
#define SQLITE_DBSTATUS_CACHE_MISS
Definition: sqlite3.c:6832
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214
#define SQLITE_DBSTATUS_LOOKASIDE_MISS_FULL
Definition: sqlite3.c:6830
Hash trigHash
Definition: sqlite3.c:10866

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_declare_vtab ( sqlite3 db,
const char *  zSQL 
)

Definition at line 115289 of file sqlite3.c.

References Table::aCol, VtabCtx::bDeclared, Parse::db, Parse::declareVtab, sqlite3::mallocFailed, sqlite3::mutex, Table::nCol, Parse::nQueryLoop, Parse::pNewTable, Table::pSelect, VtabCtx::pTab, Parse::pVdbe, sqlite3::pVtabCtx, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3ApiExit(), sqlite3DbFree(), sqlite3DeleteTable(), sqlite3Error(), sqlite3ErrorWithMsg(), sqlite3ParserReset(), sqlite3RunParser(), sqlite3VdbeFinalize(), and Table::tabFlags.

115289  {
115290  VtabCtx *pCtx;
115291  Parse *pParse;
115292  int rc = SQLITE_OK;
115293  Table *pTab;
115294  char *zErr = 0;
115295 
115296 #ifdef SQLITE_ENABLE_API_ARMOR
115297  if( !sqlite3SafetyCheckOk(db) || zCreateTable==0 ){
115298  return SQLITE_MISUSE_BKPT;
115299  }
115300 #endif
115301  sqlite3_mutex_enter(db->mutex);
115302  pCtx = db->pVtabCtx;
115303  if( !pCtx || pCtx->bDeclared ){
115305  sqlite3_mutex_leave(db->mutex);
115306  return SQLITE_MISUSE_BKPT;
115307  }
115308  pTab = pCtx->pTab;
115309  assert( (pTab->tabFlags & TF_Virtual)!=0 );
115310 
115311  pParse = sqlite3StackAllocZero(db, sizeof(*pParse));
115312  if( pParse==0 ){
115313  rc = SQLITE_NOMEM;
115314  }else{
115315  pParse->declareVtab = 1;
115316  pParse->db = db;
115317  pParse->nQueryLoop = 1;
115318 
115319  if( SQLITE_OK==sqlite3RunParser(pParse, zCreateTable, &zErr)
115320  && pParse->pNewTable
115321  && !db->mallocFailed
115322  && !pParse->pNewTable->pSelect
115323  && (pParse->pNewTable->tabFlags & TF_Virtual)==0
115324  ){
115325  if( !pTab->aCol ){
115326  pTab->aCol = pParse->pNewTable->aCol;
115327  pTab->nCol = pParse->pNewTable->nCol;
115328  pParse->pNewTable->nCol = 0;
115329  pParse->pNewTable->aCol = 0;
115330  }
115331  pCtx->bDeclared = 1;
115332  }else{
115333  sqlite3ErrorWithMsg(db, SQLITE_ERROR, (zErr ? "%s" : 0), zErr);
115334  sqlite3DbFree(db, zErr);
115335  rc = SQLITE_ERROR;
115336  }
115337  pParse->declareVtab = 0;
115338 
115339  if( pParse->pVdbe ){
115340  sqlite3VdbeFinalize(pParse->pVdbe);
115341  }
115342  sqlite3DeleteTable(db, pParse->pNewTable);
115343  sqlite3ParserReset(pParse);
115344  sqlite3StackFree(db, pParse);
115345  }
115346 
115347  assert( (rc&0xff)==rc );
115348  rc = sqlite3ApiExit(db, rc);
115349  sqlite3_mutex_leave(db->mutex);
115350  return rc;
115351 }
Table * pNewTable
Definition: sqlite3.c:12591
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
SQLITE_PRIVATE void sqlite3DeleteTable(sqlite3 *, Table *)
Definition: sqlite3.c:91404
#define SQLITE_NOMEM
Definition: sqlite3.c:619
#define TF_Virtual
Definition: sqlite3.c:11552
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
u8 declareVtab
Definition: sqlite3.c:12579
Column * aCol
Definition: sqlite3.c:11507
u8 tabFlags
Definition: sqlite3.c:11524
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
u32 nQueryLoop
Definition: sqlite3.c:12559
SQLITE_PRIVATE void sqlite3Error(sqlite3 *, int)
Definition: sqlite3.c:23556
int rc
Definition: sqlite3.c:14837
#define SQLITE_ERROR
Definition: sqlite3.c:613
#define SQLITE_MISUSE
Definition: sqlite3.c:633
SQLITE_PRIVATE void sqlite3ParserReset(Parse *)
Definition: sqlite3.c:106114
SQLITE_PRIVATE int sqlite3RunParser(Parse *, const char *, char **)
Definition: sqlite3.c:127474
Select * pSelect
Definition: sqlite3.c:11509
i16 nCol
Definition: sqlite3.c:11518
SQLITE_PRIVATE void sqlite3ErrorWithMsg(sqlite3 *, int, const char *,...)
Definition: sqlite3.c:23583
int bDeclared
Definition: sqlite3.c:114586
sqlite3 * db
Definition: sqlite3.c:14817
VtabCtx * pVtabCtx
Definition: sqlite3.c:11069
#define sqlite3StackFree(D, P)
Definition: sqlite3.c:13021
SQLITE_PRIVATE int sqlite3VdbeFinalize(Vdbe *)
Definition: sqlite3.c:67476
#define sqlite3StackAllocZero(D, N)
Definition: sqlite3.c:13020
u8 mallocFailed
Definition: sqlite3.c:11008
Table * pTab
Definition: sqlite3.c:114584
Vdbe * pVdbe
Definition: sqlite3.c:12502
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
sqlite3 * db
Definition: sqlite3.c:12500
Parse * pParse
Definition: sqlite3.c:14823
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_enable_load_extension ( sqlite3 db,
int  onoff 
)

Definition at line 102954 of file sqlite3.c.

References sqlite3::flags, sqlite3::mutex, sqlite3_mutex_enter(), and sqlite3_mutex_leave().

102954  {
102955  sqlite3_mutex_enter(db->mutex);
102956  if( onoff ){
102957  db->flags |= SQLITE_LoadExtension;
102958  }else{
102959  db->flags &= ~SQLITE_LoadExtension;
102960  }
102961  sqlite3_mutex_leave(db->mutex);
102962  return SQLITE_OK;
102963 }
#define SQLITE_LoadExtension
Definition: sqlite3.c:11140
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_OK
Definition: sqlite3.c:611
int flags
Definition: sqlite3.c:10998
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_enable_shared_cache ( int  enable)

Definition at line 53171 of file sqlite3.c.

References Sqlite3Config::sharedCacheEnabled.

53171  {
53172  sqlite3GlobalConfig.sharedCacheEnabled = enable;
53173  return SQLITE_OK;
53174 }
#define sqlite3GlobalConfig
Definition: sqlite3.c:9238
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_API int SQLITE_STDCALL sqlite3_errcode ( sqlite3 db)

Definition at line 130151 of file sqlite3.c.

References sqlite3::errCode, sqlite3::errMask, sqlite3::mallocFailed, and sqlite3SafetyCheckSickOrOk().

130151  {
130152  if( db && !sqlite3SafetyCheckSickOrOk(db) ){
130153  return SQLITE_MISUSE_BKPT;
130154  }
130155  if( !db || db->mallocFailed ){
130156  return SQLITE_NOMEM;
130157  }
130158  return db->errCode & db->errMask;
130159 }
#define SQLITE_NOMEM
Definition: sqlite3.c:619
int errCode
Definition: sqlite3.c:11002
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
int errMask
Definition: sqlite3.c:11003
SQLITE_PRIVATE int sqlite3SafetyCheckSickOrOk(sqlite3 *)
Definition: sqlite3.c:24616
u8 mallocFailed
Definition: sqlite3.c:11008

Here is the call graph for this function:

SQLITE_API const char *SQLITE_STDCALL sqlite3_errmsg ( sqlite3 db)

Definition at line 130078 of file sqlite3.c.

References sqlite3::errCode, sqlite3::mallocFailed, sqlite3::mutex, sqlite3::pErr, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3_value_text(), sqlite3ErrStr(), and sqlite3SafetyCheckSickOrOk().

Referenced by sqlite3_exec(), and sqlite3InitCallback().

130078  {
130079  const char *z;
130080  if( !db ){
130081  return sqlite3ErrStr(SQLITE_NOMEM);
130082  }
130083  if( !sqlite3SafetyCheckSickOrOk(db) ){
130085  }
130086  sqlite3_mutex_enter(db->mutex);
130087  if( db->mallocFailed ){
130089  }else{
130090  testcase( db->pErr==0 );
130091  z = (char*)sqlite3_value_text(db->pErr);
130092  assert( !db->mallocFailed );
130093  if( z==0 ){
130094  z = sqlite3ErrStr(db->errCode);
130095  }
130096  }
130097  sqlite3_mutex_leave(db->mutex);
130098  return z;
130099 }
#define SQLITE_NOMEM
Definition: sqlite3.c:619
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
int errCode
Definition: sqlite3.c:11002
sqlite3_value * pErr
Definition: sqlite3.c:11051
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_PRIVATE const char * sqlite3ErrStr(int)
Definition: sqlite3.c:129300
SQLITE_PRIVATE int sqlite3SafetyCheckSickOrOk(sqlite3 *)
Definition: sqlite3.c:24616
SQLITE_API const unsigned char *SQLITE_STDCALL sqlite3_value_text(sqlite3_value *)
Definition: sqlite3.c:69165
#define testcase(X)
Definition: sqlite3.c:8458
u8 mallocFailed
Definition: sqlite3.c:11008
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API const void *SQLITE_STDCALL sqlite3_errmsg16 ( sqlite3 db)

Definition at line 130106 of file sqlite3.c.

References sqlite3::errCode, sqlite3::mallocFailed, sqlite3::mutex, sqlite3::pErr, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3_value_text16(), sqlite3ErrorWithMsg(), sqlite3ErrStr(), and sqlite3SafetyCheckSickOrOk().

130106  {
130107  static const u16 outOfMem[] = {
130108  'o', 'u', 't', ' ', 'o', 'f', ' ', 'm', 'e', 'm', 'o', 'r', 'y', 0
130109  };
130110  static const u16 misuse[] = {
130111  'l', 'i', 'b', 'r', 'a', 'r', 'y', ' ',
130112  'r', 'o', 'u', 't', 'i', 'n', 'e', ' ',
130113  'c', 'a', 'l', 'l', 'e', 'd', ' ',
130114  'o', 'u', 't', ' ',
130115  'o', 'f', ' ',
130116  's', 'e', 'q', 'u', 'e', 'n', 'c', 'e', 0
130117  };
130118 
130119  const void *z;
130120  if( !db ){
130121  return (void *)outOfMem;
130122  }
130123  if( !sqlite3SafetyCheckSickOrOk(db) ){
130124  return (void *)misuse;
130125  }
130126  sqlite3_mutex_enter(db->mutex);
130127  if( db->mallocFailed ){
130128  z = (void *)outOfMem;
130129  }else{
130130  z = sqlite3_value_text16(db->pErr);
130131  if( z==0 ){
130133  z = sqlite3_value_text16(db->pErr);
130134  }
130135  /* A malloc() may have failed within the call to sqlite3_value_text16()
130136  ** above. If this is the case, then the db->mallocFailed flag needs to
130137  ** be cleared before returning. Do this directly, instead of via
130138  ** sqlite3ApiExit(), to avoid setting the database handle error message.
130139  */
130140  db->mallocFailed = 0;
130141  }
130142  sqlite3_mutex_leave(db->mutex);
130143  return z;
130144 }
SQLITE_API const void *SQLITE_STDCALL sqlite3_value_text16(sqlite3_value *)
Definition: sqlite3.c:69169
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
int errCode
Definition: sqlite3.c:11002
sqlite3_value * pErr
Definition: sqlite3.c:11051
SQLITE_PRIVATE const char * sqlite3ErrStr(int)
Definition: sqlite3.c:129300
SQLITE_PRIVATE int sqlite3SafetyCheckSickOrOk(sqlite3 *)
Definition: sqlite3.c:24616
SQLITE_PRIVATE void sqlite3ErrorWithMsg(sqlite3 *, int, const char *,...)
Definition: sqlite3.c:23583
u8 mallocFailed
Definition: sqlite3.c:11008
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214
UINT16_TYPE u16
Definition: sqlite3.c:8957

Here is the call graph for this function:

SQLITE_API const char *SQLITE_STDCALL sqlite3_errstr ( int  rc)

Definition at line 130175 of file sqlite3.c.

References sqlite3ErrStr().

130175  {
130176  return sqlite3ErrStr(rc);
130177 }
int rc
Definition: sqlite3.c:14837
SQLITE_PRIVATE const char * sqlite3ErrStr(int)
Definition: sqlite3.c:129300

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_exec ( sqlite3 db,
const char *  sql,
int(*)(void *, int, char **, char **)  callback,
void *  pArg,
char **  errmsg 
)

Definition at line 101728 of file sqlite3.c.

References sqlite3::flags, sqlite3::mallocFailed, sqlite3::mutex, sqlite3_column_count(), sqlite3_column_name(), sqlite3_column_text(), sqlite3_column_type(), sqlite3_errmsg(), sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3_prepare_v2(), sqlite3_step(), sqlite3ApiExit(), sqlite3DbFree(), sqlite3Error(), sqlite3SafetyCheckOk(), sqlite3Strlen30(), and sqlite3VdbeFinalize().

Referenced by sqlite3_get_table(), sqlite3AnalysisLoad(), and sqlite3VdbeExec().

101734  {
101735  int rc = SQLITE_OK; /* Return code */
101736  const char *zLeftover; /* Tail of unprocessed SQL */
101737  sqlite3_stmt *pStmt = 0; /* The current SQL statement */
101738  char **azCols = 0; /* Names of result columns */
101739  int callbackIsInit; /* True if callback data is initialized */
101740 
101741  if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
101742  if( zSql==0 ) zSql = "";
101743 
101744  sqlite3_mutex_enter(db->mutex);
101745  sqlite3Error(db, SQLITE_OK);
101746  while( rc==SQLITE_OK && zSql[0] ){
101747  int nCol;
101748  char **azVals = 0;
101749 
101750  pStmt = 0;
101751  rc = sqlite3_prepare_v2(db, zSql, -1, &pStmt, &zLeftover);
101752  assert( rc==SQLITE_OK || pStmt==0 );
101753  if( rc!=SQLITE_OK ){
101754  continue;
101755  }
101756  if( !pStmt ){
101757  /* this happens for a comment or white-space */
101758  zSql = zLeftover;
101759  continue;
101760  }
101761 
101762  callbackIsInit = 0;
101763  nCol = sqlite3_column_count(pStmt);
101764 
101765  while( 1 ){
101766  int i;
101767  rc = sqlite3_step(pStmt);
101768 
101769  /* Invoke the callback function if required */
101770  if( xCallback && (SQLITE_ROW==rc ||
101771  (SQLITE_DONE==rc && !callbackIsInit
101772  && db->flags&SQLITE_NullCallback)) ){
101773  if( !callbackIsInit ){
101774  azCols = sqlite3DbMallocZero(db, 2*nCol*sizeof(const char*) + 1);
101775  if( azCols==0 ){
101776  goto exec_out;
101777  }
101778  for(i=0; i<nCol; i++){
101779  azCols[i] = (char *)sqlite3_column_name(pStmt, i);
101780  /* sqlite3VdbeSetColName() installs column names as UTF8
101781  ** strings so there is no way for sqlite3_column_name() to fail. */
101782  assert( azCols[i]!=0 );
101783  }
101784  callbackIsInit = 1;
101785  }
101786  if( rc==SQLITE_ROW ){
101787  azVals = &azCols[nCol];
101788  for(i=0; i<nCol; i++){
101789  azVals[i] = (char *)sqlite3_column_text(pStmt, i);
101790  if( !azVals[i] && sqlite3_column_type(pStmt, i)!=SQLITE_NULL ){
101791  db->mallocFailed = 1;
101792  goto exec_out;
101793  }
101794  }
101795  }
101796  if( xCallback(pArg, nCol, azVals, azCols) ){
101797  /* EVIDENCE-OF: R-38229-40159 If the callback function to
101798  ** sqlite3_exec() returns non-zero, then sqlite3_exec() will
101799  ** return SQLITE_ABORT. */
101800  rc = SQLITE_ABORT;
101801  sqlite3VdbeFinalize((Vdbe *)pStmt);
101802  pStmt = 0;
101803  sqlite3Error(db, SQLITE_ABORT);
101804  goto exec_out;
101805  }
101806  }
101807 
101808  if( rc!=SQLITE_ROW ){
101809  rc = sqlite3VdbeFinalize((Vdbe *)pStmt);
101810  pStmt = 0;
101811  zSql = zLeftover;
101812  while( sqlite3Isspace(zSql[0]) ) zSql++;
101813  break;
101814  }
101815  }
101816 
101817  sqlite3DbFree(db, azCols);
101818  azCols = 0;
101819  }
101820 
101821 exec_out:
101822  if( pStmt ) sqlite3VdbeFinalize((Vdbe *)pStmt);
101823  sqlite3DbFree(db, azCols);
101824 
101825  rc = sqlite3ApiExit(db, rc);
101826  if( rc!=SQLITE_OK && pzErrMsg ){
101827  int nErrMsg = 1 + sqlite3Strlen30(sqlite3_errmsg(db));
101828  *pzErrMsg = sqlite3Malloc(nErrMsg);
101829  if( *pzErrMsg ){
101830  memcpy(*pzErrMsg, sqlite3_errmsg(db), nErrMsg);
101831  }else{
101832  rc = SQLITE_NOMEM;
101833  sqlite3Error(db, SQLITE_NOMEM);
101834  }
101835  }else if( pzErrMsg ){
101836  *pzErrMsg = 0;
101837  }
101838 
101839  assert( (rc&db->errMask)==rc );
101840  sqlite3_mutex_leave(db->mutex);
101841  return rc;
101842 }
#define SQLITE_ABORT
Definition: sqlite3.c:616
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
#define SQLITE_NullCallback
Definition: sqlite3.c:11125
#define SQLITE_NOMEM
Definition: sqlite3.c:619
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_API const char *SQLITE_STDCALL sqlite3_errmsg(sqlite3 *)
Definition: sqlite3.c:130078
SQLITE_API const char *SQLITE_STDCALL sqlite3_column_name(sqlite3_stmt *, int N)
Definition: sqlite3.c:70043
SQLITE_API int SQLITE_STDCALL sqlite3_step(sqlite3_stmt *)
Definition: sqlite3.c:69570
#define SQLITE_ROW
Definition: sqlite3.c:641
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
#define sqlite3Isspace(x)
Definition: sqlite3.c:12960
int errMask
Definition: sqlite3.c:11003
#define SQLITE_DONE
Definition: sqlite3.c:642
SQLITE_PRIVATE void sqlite3Error(sqlite3 *, int)
Definition: sqlite3.c:23556
int rc
Definition: sqlite3.c:14837
struct sqlite3_stmt sqlite3_stmt
Definition: sqlite3.c:3302
SQLITE_API int SQLITE_STDCALL sqlite3_column_type(sqlite3_stmt *, int iCol)
Definition: sqlite3.c:69979
SQLITE_API const unsigned char *SQLITE_STDCALL sqlite3_column_text(sqlite3_stmt *, int iCol)
Definition: sqlite3.c:69958
SQLITE_PRIVATE int sqlite3VdbeFinalize(Vdbe *)
Definition: sqlite3.c:67476
SQLITE_API int SQLITE_STDCALL sqlite3_column_count(sqlite3_stmt *pStmt)
Definition: sqlite3.c:69812
SQLITE_PRIVATE int sqlite3Strlen30(const char *)
Definition: sqlite3.c:23546
SQLITE_API int SQLITE_STDCALL sqlite3_prepare_v2(sqlite3 *db, const char *zSql, int nByte, sqlite3_stmt **ppStmt, const char **pzTail)
Definition: sqlite3.c:106373
SQLITE_PRIVATE void * sqlite3DbMallocZero(sqlite3 *, u64)
Definition: sqlite3.c:21149
u8 mallocFailed
Definition: sqlite3.c:11008
SQLITE_PRIVATE void * sqlite3Malloc(u64)
Definition: sqlite3.c:20829
#define SQLITE_OK
Definition: sqlite3.c:611
char * zSql
Definition: sqlite3.c:14865
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
int flags
Definition: sqlite3.c:10998
#define SQLITE_NULL
Definition: sqlite3.c:4090
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_expired ( sqlite3_stmt pStmt)

Definition at line 69034 of file sqlite3.c.

References Vdbe::expired.

69034  {
69035  Vdbe *p = (Vdbe*)pStmt;
69036  return p==0 || p->expired;
69037 }
bft expired
Definition: sqlite3.c:14846
SQLITE_API int SQLITE_STDCALL sqlite3_extended_errcode ( sqlite3 db)

Definition at line 130160 of file sqlite3.c.

References sqlite3::errCode, sqlite3::mallocFailed, and sqlite3SafetyCheckSickOrOk().

130160  {
130161  if( db && !sqlite3SafetyCheckSickOrOk(db) ){
130162  return SQLITE_MISUSE_BKPT;
130163  }
130164  if( !db || db->mallocFailed ){
130165  return SQLITE_NOMEM;
130166  }
130167  return db->errCode;
130168 }
#define SQLITE_NOMEM
Definition: sqlite3.c:619
int errCode
Definition: sqlite3.c:11002
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_PRIVATE int sqlite3SafetyCheckSickOrOk(sqlite3 *)
Definition: sqlite3.c:24616
u8 mallocFailed
Definition: sqlite3.c:11008

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_extended_result_codes ( sqlite3 db,
int  onoff 
)

Definition at line 131283 of file sqlite3.c.

References sqlite3::errMask, sqlite3::mutex, sqlite3_mutex_enter(), and sqlite3_mutex_leave().

131283  {
131284 #ifdef SQLITE_ENABLE_API_ARMOR
131285  if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
131286 #endif
131287  sqlite3_mutex_enter(db->mutex);
131288  db->errMask = onoff ? 0xffffffff : 0xff;
131289  sqlite3_mutex_leave(db->mutex);
131290  return SQLITE_OK;
131291 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
int errMask
Definition: sqlite3.c:11003
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_file_control ( sqlite3 db,
const char *  zDbName,
int  op,
void *  pArg 
)

Definition at line 131296 of file sqlite3.c.

References sqlite3::mutex, sqlite3_file::pMethods, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3BtreeEnter(), sqlite3BtreeLeave(), sqlite3BtreePager(), sqlite3DbNameToBtree(), sqlite3OsFileControl(), and sqlite3PagerFile().

Referenced by sqlite3Pragma().

131296  {
131297  int rc = SQLITE_ERROR;
131298  Btree *pBtree;
131299 
131300 #ifdef SQLITE_ENABLE_API_ARMOR
131301  if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
131302 #endif
131303  sqlite3_mutex_enter(db->mutex);
131304  pBtree = sqlite3DbNameToBtree(db, zDbName);
131305  if( pBtree ){
131306  Pager *pPager;
131307  sqlite3_file *fd;
131308  sqlite3BtreeEnter(pBtree);
131309  pPager = sqlite3BtreePager(pBtree);
131310  assert( pPager!=0 );
131311  fd = sqlite3PagerFile(pPager);
131312  assert( fd!=0 );
131313  if( op==SQLITE_FCNTL_FILE_POINTER ){
131314  *(sqlite3_file**)pArg = fd;
131315  rc = SQLITE_OK;
131316  }else if( fd->pMethods ){
131317  rc = sqlite3OsFileControl(fd, op, pArg);
131318  }else{
131319  rc = SQLITE_NOTFOUND;
131320  }
131321  sqlite3BtreeLeave(pBtree);
131322  }
131323  sqlite3_mutex_leave(db->mutex);
131324  return rc;
131325 }
SQLITE_PRIVATE struct Pager * sqlite3BtreePager(Btree *)
Definition: sqlite3.c:61436
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_PRIVATE void sqlite3BtreeEnter(Btree *)
Definition: sqlite3.c:52850
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
int rc
Definition: sqlite3.c:14837
#define SQLITE_ERROR
Definition: sqlite3.c:613
SQLITE_PRIVATE void sqlite3BtreeLeave(Btree *)
Definition: sqlite3.c:52922
const struct sqlite3_io_methods * pMethods
Definition: sqlite3.c:844
SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file *, int, void *)
Definition: sqlite3.c:16572
SQLITE_PRIVATE Btree * sqlite3DbNameToBtree(sqlite3 *, const char *)
Definition: sqlite3.c:131713
#define SQLITE_NOTFOUND
Definition: sqlite3.c:624
SQLITE_PRIVATE sqlite3_file * sqlite3PagerFile(Pager *)
Definition: sqlite3.c:48302
#define SQLITE_FCNTL_FILE_POINTER
Definition: sqlite3.c:1181
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_finalize ( sqlite3_stmt pStmt)

Definition at line 69071 of file sqlite3.c.

References Vdbe::db, sqlite3::mutex, sqlite3_mutex_enter(), sqlite3ApiExit(), sqlite3LeaveMutexAndCloseZombie(), and sqlite3VdbeFinalize().

Referenced by sqlite3_blob_close(), and sqlite3InitCallback().

69071  {
69072  int rc;
69073  if( pStmt==0 ){
69074  /* IMPLEMENTATION-OF: R-57228-12904 Invoking sqlite3_finalize() on a NULL
69075  ** pointer is a harmless no-op. */
69076  rc = SQLITE_OK;
69077  }else{
69078  Vdbe *v = (Vdbe*)pStmt;
69079  sqlite3 *db = v->db;
69080  if( vdbeSafety(v) ) return SQLITE_MISUSE_BKPT;
69082  rc = sqlite3VdbeFinalize(v);
69083  rc = sqlite3ApiExit(db, rc);
69085  }
69086  return rc;
69087 }
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_PRIVATE void sqlite3LeaveMutexAndCloseZombie(sqlite3 *)
Definition: sqlite3.c:129019
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
int rc
Definition: sqlite3.c:14837
sqlite3 * db
Definition: sqlite3.c:14817
SQLITE_PRIVATE int sqlite3VdbeFinalize(Vdbe *)
Definition: sqlite3.c:67476
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_free ( void *  p)

Definition at line 21010 of file sqlite3.c.

References Sqlite3Config::bMemstat, Sqlite3Config::m, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3MallocSize(), sqlite3StatusDown(), and sqlite3_mem_methods::xFree.

Referenced by sqlite3_backup_finish(), sqlite3_backup_init(), sqlite3_free_table(), sqlite3_get_table(), sqlite3_reset_auto_extension(), sqlite3AutoLoadExtensions(), sqlite3BitvecBuiltinTest(), sqlite3BitvecDestroy(), sqlite3BtreeClearCursor(), sqlite3BtreeClose(), sqlite3BtreeCloseCursor(), sqlite3BtreeIntegrityCheck(), sqlite3BtreeMovetoUnpacked(), sqlite3BtreeOpen(), sqlite3DbFree(), sqlite3HashClear(), sqlite3InvalidFunction(), sqlite3LeaveMutexAndCloseZombie(), sqlite3OsCloseFree(), sqlite3OsInit(), sqlite3OsOpenMalloc(), sqlite3PagerClose(), sqlite3PagerOpen(), sqlite3ParseUri(), sqlite3Pragma(), sqlite3Realloc(), sqlite3RunParser(), sqlite3StrAccumReset(), sqlite3ThreadJoin(), sqlite3VdbeExec(), sqlite3VdbeSorterClose(), sqlite3VtabImportErrmsg(), sqlite3VXPrintf(), sqlite3WalClose(), and sqlite3WalOpen().

21010  {
21011  if( p==0 ) return; /* IMP: R-49053-54554 */
21012  assert( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) );
21013  assert( sqlite3MemdebugNoType(p, (u8)~MEMTYPE_HEAP) );
21014  if( sqlite3GlobalConfig.bMemstat ){
21015  sqlite3_mutex_enter(mem0.mutex);
21018  sqlite3GlobalConfig.m.xFree(p);
21019  sqlite3_mutex_leave(mem0.mutex);
21020  }else{
21021  sqlite3GlobalConfig.m.xFree(p);
21022  }
21023 }
#define sqlite3MemdebugNoType(X, Y)
Definition: sqlite3.c:13772
UINT8_TYPE u8
Definition: sqlite3.c:8959
#define sqlite3GlobalConfig
Definition: sqlite3.c:9238
SQLITE_PRIVATE void sqlite3StatusDown(int, int)
Definition: sqlite3.c:15080
#define MEMTYPE_HEAP
Definition: sqlite3.c:13774
#define SQLITE_STATUS_MALLOC_COUNT
Definition: sqlite3.c:6707
#define mem0
Definition: sqlite3.c:20598
#define SQLITE_STATUS_MEMORY_USED
Definition: sqlite3.c:6698
SQLITE_PRIVATE int sqlite3MallocSize(void *)
Definition: sqlite3.c:20981
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214
#define sqlite3MemdebugHasType(X, Y)
Definition: sqlite3.c:13771

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_free_table ( char **  result)

Definition at line 112272 of file sqlite3.c.

References sqlite3_free().

Referenced by sqlite3_get_table().

112274  {
112275  if( azResult ){
112276  int i, n;
112277  azResult--;
112278  assert( azResult!=0 );
112279  n = SQLITE_PTR_TO_INT(azResult[0]);
112280  for(i=1; i<n; i++){ if( azResult[i] ) sqlite3_free(azResult[i]); }
112281  sqlite3_free(azResult);
112282  }
112283 }
#define SQLITE_PTR_TO_INT(X)
Definition: sqlite3.c:8307
SQLITE_API void SQLITE_STDCALL sqlite3_free(void *)
Definition: sqlite3.c:21010

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_get_autocommit ( sqlite3 db)

Definition at line 131089 of file sqlite3.c.

References sqlite3::autoCommit.

131089  {
131090 #ifdef SQLITE_ENABLE_API_ARMOR
131091  if( !sqlite3SafetyCheckOk(db) ){
131092  (void)SQLITE_MISUSE_BKPT;
131093  return 0;
131094  }
131095 #endif
131096  return db->autoCommit;
131097 }
u8 autoCommit
Definition: sqlite3.c:11006
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void *SQLITE_STDCALL sqlite3_get_auxdata ( sqlite3_context pCtx,
int  N 
)

Definition at line 69727 of file sqlite3.c.

References AuxData::iArg, AuxData::iOp, sqlite3_context::iOp, AuxData::pAux, Vdbe::pAuxData, AuxData::pNext, and sqlite3_context::pVdbe.

69727  {
69728  AuxData *pAuxData;
69729 
69730  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69731 #if SQLITE_ENABLE_STAT3_OR_STAT4
69732  if( pCtx->pVdbe==0 ) return 0;
69733 #else
69734  assert( pCtx->pVdbe!=0 );
69735 #endif
69736  for(pAuxData=pCtx->pVdbe->pAuxData; pAuxData; pAuxData=pAuxData->pNext){
69737  if( pAuxData->iOp==pCtx->iOp && pAuxData->iArg==iArg ) break;
69738  }
69739 
69740  return (pAuxData ? pAuxData->pAux : 0);
69741 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
void * pAux
Definition: sqlite3.c:14753
int iArg
Definition: sqlite3.c:14752
int iOp
Definition: sqlite3.c:14751
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
AuxData * pAuxData
Definition: sqlite3.c:14874
AuxData * pNext
Definition: sqlite3.c:14755
sqlite3 * db
Definition: sqlite3.c:14680
SQLITE_API int SQLITE_STDCALL sqlite3_get_table ( sqlite3 db,
const char *  zSql,
char ***  pazResult,
int *  pnRow,
int *  pnColumn,
char **  pzErrmsg 
)

Definition at line 112203 of file sqlite3.c.

References TabResult::azResult, sqlite3::errCode, TabResult::nAlloc, TabResult::nColumn, TabResult::nData, TabResult::nRow, TabResult::rc, sqlite3_exec(), sqlite3_free(), sqlite3_free_table(), sqlite3_mprintf(), and TabResult::zErrMsg.

112210  {
112211  int rc;
112212  TabResult res;
112213 
112214 #ifdef SQLITE_ENABLE_API_ARMOR
112215  if( !sqlite3SafetyCheckOk(db) || pazResult==0 ) return SQLITE_MISUSE_BKPT;
112216 #endif
112217  *pazResult = 0;
112218  if( pnColumn ) *pnColumn = 0;
112219  if( pnRow ) *pnRow = 0;
112220  if( pzErrMsg ) *pzErrMsg = 0;
112221  res.zErrMsg = 0;
112222  res.nRow = 0;
112223  res.nColumn = 0;
112224  res.nData = 1;
112225  res.nAlloc = 20;
112226  res.rc = SQLITE_OK;
112227  res.azResult = sqlite3_malloc(sizeof(char*)*res.nAlloc );
112228  if( res.azResult==0 ){
112229  db->errCode = SQLITE_NOMEM;
112230  return SQLITE_NOMEM;
112231  }
112232  res.azResult[0] = 0;
112233  rc = sqlite3_exec(db, zSql, sqlite3_get_table_cb, &res, pzErrMsg);
112234  assert( sizeof(res.azResult[0])>= sizeof(res.nData) );
112235  res.azResult[0] = SQLITE_INT_TO_PTR(res.nData);
112236  if( (rc&0xff)==SQLITE_ABORT ){
112237  sqlite3_free_table(&res.azResult[1]);
112238  if( res.zErrMsg ){
112239  if( pzErrMsg ){
112240  sqlite3_free(*pzErrMsg);
112241  *pzErrMsg = sqlite3_mprintf("%s",res.zErrMsg);
112242  }
112243  sqlite3_free(res.zErrMsg);
112244  }
112245  db->errCode = res.rc; /* Assume 32-bit assignment is atomic */
112246  return res.rc;
112247  }
112248  sqlite3_free(res.zErrMsg);
112249  if( rc!=SQLITE_OK ){
112250  sqlite3_free_table(&res.azResult[1]);
112251  return rc;
112252  }
112253  if( res.nAlloc>res.nData ){
112254  char **azNew;
112255  azNew = sqlite3_realloc( res.azResult, sizeof(char*)*res.nData );
112256  if( azNew==0 ){
112257  sqlite3_free_table(&res.azResult[1]);
112258  db->errCode = SQLITE_NOMEM;
112259  return SQLITE_NOMEM;
112260  }
112261  res.azResult = azNew;
112262  }
112263  *pazResult = &res.azResult[1];
112264  if( pnColumn ) *pnColumn = res.nColumn;
112265  if( pnRow ) *pnRow = res.nRow;
112266  return rc;
112267 }
#define SQLITE_ABORT
Definition: sqlite3.c:616
#define SQLITE_NOMEM
Definition: sqlite3.c:619
SQLITE_API void *SQLITE_STDCALL sqlite3_realloc(void *, int)
Definition: sqlite3.c:21119
int errCode
Definition: sqlite3.c:11002
SQLITE_API void *SQLITE_STDCALL sqlite3_malloc(int)
Definition: sqlite3.c:20854
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
int rc
Definition: sqlite3.c:14837
u32 nAlloc
Definition: sqlite3.c:112117
SQLITE_API char *SQLITE_CDECL sqlite3_mprintf(const char *,...)
Definition: sqlite3.c:22331
u32 nColumn
Definition: sqlite3.c:112119
#define SQLITE_INT_TO_PTR(X)
Definition: sqlite3.c:8306
char * zErrMsg
Definition: sqlite3.c:112116
SQLITE_API int SQLITE_STDCALL sqlite3_exec(sqlite3 *, const char *sql, int(*callback)(void *, int, char **, char **), void *, char **errmsg)
Definition: sqlite3.c:101728
SQLITE_API void SQLITE_STDCALL sqlite3_free_table(char **result)
Definition: sqlite3.c:112272
#define SQLITE_OK
Definition: sqlite3.c:611
char * zSql
Definition: sqlite3.c:14865
char ** azResult
Definition: sqlite3.c:112115
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_free(void *)
Definition: sqlite3.c:21010

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_global_recover ( void  )

Definition at line 131078 of file sqlite3.c.

131078  {
131079  return SQLITE_OK;
131080 }
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_API int SQLITE_STDCALL sqlite3_initialize ( void  )

Definition at line 128111 of file sqlite3.c.

References Sqlite3Config::bCoreMutex, Sqlite3Config::inProgress, Sqlite3Config::isInit, Sqlite3Config::isMallocInit, Sqlite3Config::isMutexInit, Sqlite3Config::isPCacheInit, Sqlite3Config::nPage, Sqlite3Config::nRefInitMutex, Sqlite3Config::pInitMutex, Sqlite3Config::pPage, sqlite3_mutex_enter(), sqlite3_mutex_free(), sqlite3_mutex_leave(), sqlite3GlobalFunctions, sqlite3MallocInit(), sqlite3MutexAlloc(), sqlite3MutexInit(), sqlite3OsInit(), sqlite3PCacheBufferSetup(), sqlite3PcacheInitialize(), sqlite3RegisterGlobalFunctions(), and Sqlite3Config::szPage.

Referenced by sqlite3_auto_extension(), sqlite3_complete16(), sqlite3_malloc(), sqlite3_malloc64(), sqlite3_mprintf(), sqlite3_mutex_alloc(), sqlite3_open16(), sqlite3_randomness(), sqlite3_realloc(), sqlite3_realloc64(), sqlite3_reset_auto_extension(), sqlite3_soft_heap_limit64(), sqlite3_vfs_find(), sqlite3_vfs_register(), and sqlite3_vmprintf().

128111  {
128112  MUTEX_LOGIC( sqlite3_mutex *pMaster; ) /* The main static mutex */
128113  int rc; /* Result code */
128114 #ifdef SQLITE_EXTRA_INIT
128115  int bRunExtraInit = 0; /* Extra initialization needed */
128116 #endif
128117 
128118 #ifdef SQLITE_OMIT_WSD
128119  rc = sqlite3_wsd_init(4096, 24);
128120  if( rc!=SQLITE_OK ){
128121  return rc;
128122  }
128123 #endif
128124 
128125  /* If the following assert() fails on some obscure processor/compiler
128126  ** combination, the work-around is to set the correct pointer
128127  ** size at compile-time using -DSQLITE_PTRSIZE=n compile-time option */
128128  assert( SQLITE_PTRSIZE==sizeof(char*) );
128129 
128130  /* If SQLite is already completely initialized, then this call
128131  ** to sqlite3_initialize() should be a no-op. But the initialization
128132  ** must be complete. So isInit must not be set until the very end
128133  ** of this routine.
128134  */
128135  if( sqlite3GlobalConfig.isInit ) return SQLITE_OK;
128136 
128137  /* Make sure the mutex subsystem is initialized. If unable to
128138  ** initialize the mutex subsystem, return early with the error.
128139  ** If the system is so sick that we are unable to allocate a mutex,
128140  ** there is not much SQLite is going to be able to do.
128141  **
128142  ** The mutex subsystem must take care of serializing its own
128143  ** initialization.
128144  */
128145  rc = sqlite3MutexInit();
128146  if( rc ) return rc;
128147 
128148  /* Initialize the malloc() system and the recursive pInitMutex mutex.
128149  ** This operation is protected by the STATIC_MASTER mutex. Note that
128150  ** MutexAlloc() is called for a static mutex prior to initializing the
128151  ** malloc subsystem - this implies that the allocation of a static
128152  ** mutex must not require support from the malloc subsystem.
128153  */
128155  sqlite3_mutex_enter(pMaster);
128156  sqlite3GlobalConfig.isMutexInit = 1;
128157  if( !sqlite3GlobalConfig.isMallocInit ){
128158  rc = sqlite3MallocInit();
128159  }
128160  if( rc==SQLITE_OK ){
128161  sqlite3GlobalConfig.isMallocInit = 1;
128162  if( !sqlite3GlobalConfig.pInitMutex ){
128163  sqlite3GlobalConfig.pInitMutex =
128165  if( sqlite3GlobalConfig.bCoreMutex && !sqlite3GlobalConfig.pInitMutex ){
128166  rc = SQLITE_NOMEM;
128167  }
128168  }
128169  }
128170  if( rc==SQLITE_OK ){
128171  sqlite3GlobalConfig.nRefInitMutex++;
128172  }
128173  sqlite3_mutex_leave(pMaster);
128174 
128175  /* If rc is not SQLITE_OK at this point, then either the malloc
128176  ** subsystem could not be initialized or the system failed to allocate
128177  ** the pInitMutex mutex. Return an error in either case. */
128178  if( rc!=SQLITE_OK ){
128179  return rc;
128180  }
128181 
128182  /* Do the rest of the initialization under the recursive mutex so
128183  ** that we will be able to handle recursive calls into
128184  ** sqlite3_initialize(). The recursive calls normally come through
128185  ** sqlite3_os_init() when it invokes sqlite3_vfs_register(), but other
128186  ** recursive calls might also be possible.
128187  **
128188  ** IMPLEMENTATION-OF: R-00140-37445 SQLite automatically serializes calls
128189  ** to the xInit method, so the xInit method need not be threadsafe.
128190  **
128191  ** The following mutex is what serializes access to the appdef pcache xInit
128192  ** methods. The sqlite3_pcache_methods.xInit() all is embedded in the
128193  ** call to sqlite3PcacheInitialize().
128194  */
128196  if( sqlite3GlobalConfig.isInit==0 && sqlite3GlobalConfig.inProgress==0 ){
128198  sqlite3GlobalConfig.inProgress = 1;
128199  memset(pHash, 0, sizeof(sqlite3GlobalFunctions));
128201  if( sqlite3GlobalConfig.isPCacheInit==0 ){
128203  }
128204  if( rc==SQLITE_OK ){
128205  sqlite3GlobalConfig.isPCacheInit = 1;
128206  rc = sqlite3OsInit();
128207  }
128208  if( rc==SQLITE_OK ){
128210  sqlite3GlobalConfig.szPage, sqlite3GlobalConfig.nPage);
128211  sqlite3GlobalConfig.isInit = 1;
128212 #ifdef SQLITE_EXTRA_INIT
128213  bRunExtraInit = 1;
128214 #endif
128215  }
128216  sqlite3GlobalConfig.inProgress = 0;
128217  }
128219 
128220  /* Go back under the static mutex and clean up the recursive
128221  ** mutex to prevent a resource leak.
128222  */
128223  sqlite3_mutex_enter(pMaster);
128224  sqlite3GlobalConfig.nRefInitMutex--;
128225  if( sqlite3GlobalConfig.nRefInitMutex<=0 ){
128226  assert( sqlite3GlobalConfig.nRefInitMutex==0 );
128228  sqlite3GlobalConfig.pInitMutex = 0;
128229  }
128230  sqlite3_mutex_leave(pMaster);
128231 
128232  /* The following is just a sanity check to make sure SQLite has
128233  ** been compiled correctly. It is important to run this code, but
128234  ** we don't want to run it too often and soak up CPU cycles for no
128235  ** reason. So we run it once during initialization.
128236  */
128237 #ifndef NDEBUG
128238 #ifndef SQLITE_OMIT_FLOATING_POINT
128239  /* This section of code's only "output" is via assert() statements. */
128240  if ( rc==SQLITE_OK ){
128241  u64 x = (((u64)1)<<63)-1;
128242  double y;
128243  assert(sizeof(x)==8);
128244  assert(sizeof(x)==sizeof(y));
128245  memcpy(&y, &x, 8);
128246  assert( sqlite3IsNaN(y) );
128247  }
128248 #endif
128249 #endif
128250 
128251  /* Do extra initialization steps requested by the SQLITE_EXTRA_INIT
128252  ** compile-time option.
128253  */
128254 #ifdef SQLITE_EXTRA_INIT
128255  if( bRunExtraInit ){
128256  int SQLITE_EXTRA_INIT(const char*);
128257  rc = SQLITE_EXTRA_INIT(0);
128258  }
128259 #endif
128260 
128261  return rc;
128262 }
#define SQLITE_MUTEX_STATIC_MASTER
Definition: sqlite3.c:6468
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_free(sqlite3_mutex *)
Definition: sqlite3.c:19204
sqlite_uint64 u64
Definition: sqlite3.c:8955
#define MUTEX_LOGIC(X)
Definition: sqlite3.c:10823
#define SQLITE_NOMEM
Definition: sqlite3.c:619
SQLITE_PRIVATE void sqlite3PCacheBufferSetup(void *, int sz, int n)
Definition: sqlite3.c:40124
#define GLOBAL(t, v)
Definition: sqlite3.c:9237
SQLITE_PRIVATE int sqlite3IsNaN(double)
Definition: sqlite3.c:23498
#define sqlite3GlobalConfig
Definition: sqlite3.c:9238
SQLITE_PRIVATE int sqlite3MallocInit(void)
Definition: sqlite3.c:20686
#define SQLITE_MUTEX_RECURSIVE
Definition: sqlite3.c:6467
SQLITE_PRIVATE void sqlite3RegisterGlobalFunctions(void)
Definition: sqlite3.c:98128
int rc
Definition: sqlite3.c:14837
SQLITE_PRIVATE SQLITE_WSD FuncDefHash sqlite3GlobalFunctions
Definition: sqlite3.c:14011
SQLITE_PRIVATE int sqlite3MutexInit(void)
Definition: sqlite3.c:19135
SQLITE_PRIVATE int sqlite3OsInit(void)
Definition: sqlite3.c:16758
SQLITE_PRIVATE int sqlite3PcacheInitialize(void)
Definition: sqlite3.c:39426
#define SQLITE_PTRSIZE
Definition: sqlite3.c:9017
SQLITE_PRIVATE sqlite3_mutex * sqlite3MutexAlloc(int)
Definition: sqlite3.c:19193
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_interrupt ( sqlite3 db)

Definition at line 129485 of file sqlite3.c.

129485  {
129486 #ifdef SQLITE_ENABLE_API_ARMOR
129487  if( !sqlite3SafetyCheckOk(db) ){
129488  (void)SQLITE_MISUSE_BKPT;
129489  return;
129490  }
129491 #endif
129492  db->u1.isInterrupted = 1;
129493 }
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
volatile int isInterrupted
Definition: sqlite3.c:11053
union sqlite3::@2 u1
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API sqlite_int64 SQLITE_STDCALL sqlite3_last_insert_rowid ( sqlite3 db)

Definition at line 128839 of file sqlite3.c.

References sqlite3::lastRowid.

128839  {
128840 #ifdef SQLITE_ENABLE_API_ARMOR
128841  if( !sqlite3SafetyCheckOk(db) ){
128842  (void)SQLITE_MISUSE_BKPT;
128843  return 0;
128844  }
128845 #endif
128846  return db->lastRowid;
128847 }
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
i64 lastRowid
Definition: sqlite3.c:10999
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API const char *SQLITE_STDCALL sqlite3_libversion ( void  )

Definition at line 128033 of file sqlite3.c.

References sqlite3_version.

128033 { return sqlite3_version; }
SQLITE_API const char sqlite3_version[]
Definition: sqlite3.c:355
SQLITE_API int SQLITE_STDCALL sqlite3_libversion_number ( void  )

Definition at line 128044 of file sqlite3.c.

128044 { return SQLITE_VERSION_NUMBER; }
#define SQLITE_VERSION_NUMBER
Definition: sqlite3.c:322
SQLITE_API int SQLITE_STDCALL sqlite3_limit ( sqlite3 db,
int  id,
int  newVal 
)

Definition at line 130323 of file sqlite3.c.

References sqlite3::aLimit.

Referenced by sqlite3Pragma().

130323  {
130324  int oldLimit;
130325 
130326 #ifdef SQLITE_ENABLE_API_ARMOR
130327  if( !sqlite3SafetyCheckOk(db) ){
130328  (void)SQLITE_MISUSE_BKPT;
130329  return -1;
130330  }
130331 #endif
130332 
130333  /* EVIDENCE-OF: R-30189-54097 For each limit category SQLITE_LIMIT_NAME
130334  ** there is a hard upper bound set at compile-time by a C preprocessor
130335  ** macro called SQLITE_MAX_NAME. (The "_LIMIT_" in the name is changed to
130336  ** "_MAX_".)
130337  */
130338  assert( aHardLimit[SQLITE_LIMIT_LENGTH]==SQLITE_MAX_LENGTH );
130339  assert( aHardLimit[SQLITE_LIMIT_SQL_LENGTH]==SQLITE_MAX_SQL_LENGTH );
130340  assert( aHardLimit[SQLITE_LIMIT_COLUMN]==SQLITE_MAX_COLUMN );
130341  assert( aHardLimit[SQLITE_LIMIT_EXPR_DEPTH]==SQLITE_MAX_EXPR_DEPTH );
130343  assert( aHardLimit[SQLITE_LIMIT_VDBE_OP]==SQLITE_MAX_VDBE_OP );
130344  assert( aHardLimit[SQLITE_LIMIT_FUNCTION_ARG]==SQLITE_MAX_FUNCTION_ARG );
130345  assert( aHardLimit[SQLITE_LIMIT_ATTACHED]==SQLITE_MAX_ATTACHED );
130346  assert( aHardLimit[SQLITE_LIMIT_LIKE_PATTERN_LENGTH]==
130349  assert( aHardLimit[SQLITE_LIMIT_TRIGGER_DEPTH]==SQLITE_MAX_TRIGGER_DEPTH );
130352 
130353 
130354  if( limitId<0 || limitId>=SQLITE_N_LIMIT ){
130355  return -1;
130356  }
130357  oldLimit = db->aLimit[limitId];
130358  if( newLimit>=0 ){ /* IMP: R-52476-28732 */
130359  if( newLimit>aHardLimit[limitId] ){
130360  newLimit = aHardLimit[limitId]; /* IMP: R-51463-25634 */
130361  }
130362  db->aLimit[limitId] = newLimit;
130363  }
130364  return oldLimit; /* IMP: R-53341-35419 */
130365 }
#define SQLITE_MAX_ATTACHED
Definition: sqlite3.c:8179
#define SQLITE_MAX_VARIABLE_NUMBER
Definition: sqlite3.c:8187
#define SQLITE_LIMIT_ATTACHED
Definition: sqlite3.c:3409
#define SQLITE_MAX_TRIGGER_DEPTH
Definition: sqlite3.c:8261
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
#define SQLITE_LIMIT_VARIABLE_NUMBER
Definition: sqlite3.c:3411
#define SQLITE_MAX_VDBE_OP
Definition: sqlite3.c:8142
#define SQLITE_MAX_LENGTH
Definition: sqlite3.c:8076
#define SQLITE_LIMIT_COLUMN
Definition: sqlite3.c:3404
int aLimit[SQLITE_N_LIMIT]
Definition: sqlite3.c:11018
#define SQLITE_LIMIT_COMPOUND_SELECT
Definition: sqlite3.c:3406
#define SQLITE_LIMIT_LENGTH
Definition: sqlite3.c:3402
#define SQLITE_LIMIT_WORKER_THREADS
Definition: sqlite3.c:3413
#define SQLITE_MAX_FUNCTION_ARG
Definition: sqlite3.c:8149
#define SQLITE_N_LIMIT
Definition: sqlite3.c:10902
#define SQLITE_MAX_EXPR_DEPTH
Definition: sqlite3.c:8122
#define SQLITE_MAX_SQL_LENGTH
Definition: sqlite3.c:8108
#define SQLITE_MAX_COMPOUND_SELECT
Definition: sqlite3.c:8134
#define SQLITE_MAX_COLUMN
Definition: sqlite3.c:8097
#define SQLITE_LIMIT_TRIGGER_DEPTH
Definition: sqlite3.c:3412
#define SQLITE_MAX_LIKE_PATTERN_LENGTH
Definition: sqlite3.c:8250
#define SQLITE_LIMIT_EXPR_DEPTH
Definition: sqlite3.c:3405
#define SQLITE_LIMIT_FUNCTION_ARG
Definition: sqlite3.c:3408
#define SQLITE_MAX_WORKER_THREADS
Definition: sqlite3.c:8869
#define SQLITE_LIMIT_SQL_LENGTH
Definition: sqlite3.c:3403
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
#define SQLITE_LIMIT_VDBE_OP
Definition: sqlite3.c:3407
#define SQLITE_LIMIT_LIKE_PATTERN_LENGTH
Definition: sqlite3.c:3410
SQLITE_API int SQLITE_STDCALL sqlite3_load_extension ( sqlite3 db,
const char *  zFile,
const char *  zProc,
char **  pzErrMsg 
)

Definition at line 102923 of file sqlite3.c.

References sqlite3::mutex, sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3ApiExit().

102928  {
102929  int rc;
102930  sqlite3_mutex_enter(db->mutex);
102931  rc = sqlite3LoadExtension(db, zFile, zProc, pzErrMsg);
102932  rc = sqlite3ApiExit(db, rc);
102933  sqlite3_mutex_leave(db->mutex);
102934  return rc;
102935 }
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
int rc
Definition: sqlite3.c:14837
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API void SQLITE_CDECL sqlite3_log ( int  iErrCode,
const char *  zFormat,
  ... 
)

Definition at line 22403 of file sqlite3.c.

References Sqlite3Config::xLog.

Referenced by sqlite3CantopenError(), sqlite3CorruptError(), sqlite3MisuseError(), sqlite3RunParser(), and sqlite3VdbeExec().

22403  {
22404  va_list ap; /* Vararg list */
22405  if( sqlite3GlobalConfig.xLog ){
22406  va_start(ap, zFormat);
22407  renderLogMsg(iErrCode, zFormat, ap);
22408  va_end(ap);
22409  }
22410 }
#define sqlite3GlobalConfig
Definition: sqlite3.c:9238
SQLITE_API void *SQLITE_STDCALL sqlite3_malloc ( int  n)

Definition at line 20854 of file sqlite3.c.

References sqlite3_initialize(), and sqlite3Malloc().

Referenced by sqlite3BitvecBuiltinTest(), and sqlite3OsInit().

20854  {
20855 #ifndef SQLITE_OMIT_AUTOINIT
20856  if( sqlite3_initialize() ) return 0;
20857 #endif
20858  return n<=0 ? 0 : sqlite3Malloc(n);
20859 }
SQLITE_API int SQLITE_STDCALL sqlite3_initialize(void)
Definition: sqlite3.c:128111
SQLITE_PRIVATE void * sqlite3Malloc(u64)
Definition: sqlite3.c:20829

Here is the call graph for this function:

SQLITE_API void *SQLITE_STDCALL sqlite3_malloc64 ( sqlite3_uint64  n)

Definition at line 20860 of file sqlite3.c.

References sqlite3_initialize(), and sqlite3Malloc().

20860  {
20861 #ifndef SQLITE_OMIT_AUTOINIT
20862  if( sqlite3_initialize() ) return 0;
20863 #endif
20864  return sqlite3Malloc(n);
20865 }
SQLITE_API int SQLITE_STDCALL sqlite3_initialize(void)
Definition: sqlite3.c:128111
SQLITE_PRIVATE void * sqlite3Malloc(u64)
Definition: sqlite3.c:20829

Here is the call graph for this function:

SQLITE_API SQLITE_DEPRECATED int SQLITE_STDCALL sqlite3_memory_alarm ( void(*)(void *, sqlite3_int64, int)  ,
void *  ,
sqlite3_int64   
)
SQLITE_API int SQLITE_STDCALL sqlite3_memory_alarm ( void(*)(void *pArg, sqlite3_int64 used, int N)  xCallback,
void *  pArg,
sqlite3_int64  iThreshold 
)

Definition at line 20645 of file sqlite3.c.

20649  {
20650  return sqlite3MemoryAlarm(xCallback, pArg, iThreshold);
20651 }
SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_memory_highwater ( int  resetFlag)

Definition at line 20763 of file sqlite3.c.

References sqlite3_status().

20763  {
20764  int n, mx;
20765  sqlite3_int64 res;
20766  sqlite3_status(SQLITE_STATUS_MEMORY_USED, &n, &mx, resetFlag);
20767  res = (sqlite3_int64)mx; /* Work around bug in Borland C. Ticket #3216 */
20768  return res;
20769 }
SQLITE_API int SQLITE_STDCALL sqlite3_status(int op, int *pCurrent, int *pHighwater, int resetFlag)
Definition: sqlite3.c:15134
sqlite_int64 sqlite3_int64
Definition: sqlite3.c:467
#define SQLITE_STATUS_MEMORY_USED
Definition: sqlite3.c:6698

Here is the call graph for this function:

SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_memory_used ( void  )

Definition at line 20750 of file sqlite3.c.

References sqlite3_status().

Referenced by sqlite3_soft_heap_limit64().

20750  {
20751  int n, mx;
20752  sqlite3_int64 res;
20754  res = (sqlite3_int64)n; /* Work around bug in Borland C. Ticket #3216 */
20755  return res;
20756 }
SQLITE_API int SQLITE_STDCALL sqlite3_status(int op, int *pCurrent, int *pHighwater, int resetFlag)
Definition: sqlite3.c:15134
sqlite_int64 sqlite3_int64
Definition: sqlite3.c:467
#define SQLITE_STATUS_MEMORY_USED
Definition: sqlite3.c:6698

Here is the call graph for this function:

SQLITE_API char *SQLITE_CDECL sqlite3_mprintf ( const char *  zFormat,
  ... 
)

Definition at line 22331 of file sqlite3.c.

References sqlite3_initialize().

Referenced by sqlite3_get_table(), sqlite3InvalidFunction(), sqlite3ParseUri(), and sqlite3Pragma().

22331  {
22332  va_list ap;
22333  char *z;
22334 #ifndef SQLITE_OMIT_AUTOINIT
22335  if( sqlite3_initialize() ) return 0;
22336 #endif
22337  va_start(ap, zFormat);
22338  z = sqlite3_vmprintf(zFormat, ap);
22339  va_end(ap);
22340  return z;
22341 }
SQLITE_API int SQLITE_STDCALL sqlite3_initialize(void)
Definition: sqlite3.c:128111
SQLITE_API char *SQLITE_STDCALL sqlite3_vmprintf(const char *, va_list)
Definition: sqlite3.c:22306

Here is the call graph for this function:

SQLITE_API sqlite3_uint64 SQLITE_STDCALL sqlite3_msize ( void *  p)

Definition at line 21001 of file sqlite3.c.

References Sqlite3Config::m, and sqlite3_mem_methods::xSize.

21001  {
21002  assert( sqlite3MemdebugNoType(p, (u8)~MEMTYPE_HEAP) );
21003  assert( sqlite3MemdebugHasType(p, MEMTYPE_HEAP) );
21004  return (sqlite3_uint64)sqlite3GlobalConfig.m.xSize(p);
21005 }
#define sqlite3MemdebugNoType(X, Y)
Definition: sqlite3.c:13772
UINT8_TYPE u8
Definition: sqlite3.c:8959
#define sqlite3GlobalConfig
Definition: sqlite3.c:9238
sqlite_uint64 sqlite3_uint64
Definition: sqlite3.c:468
#define MEMTYPE_HEAP
Definition: sqlite3.c:13774
#define sqlite3MemdebugHasType(X, Y)
Definition: sqlite3.c:13771
SQLITE_API sqlite3_mutex *SQLITE_STDCALL sqlite3_mutex_alloc ( int  id)

Definition at line 19185 of file sqlite3.c.

References Sqlite3Config::mutex, sqlite3_initialize(), and sqlite3MutexInit().

19185  {
19186 #ifndef SQLITE_OMIT_AUTOINIT
19187  if( id<=SQLITE_MUTEX_RECURSIVE && sqlite3_initialize() ) return 0;
19188  if( id>SQLITE_MUTEX_RECURSIVE && sqlite3MutexInit() ) return 0;
19189 #endif
19190  return sqlite3GlobalConfig.mutex.xMutexAlloc(id);
19191 }
SQLITE_API int SQLITE_STDCALL sqlite3_initialize(void)
Definition: sqlite3.c:128111
#define sqlite3GlobalConfig
Definition: sqlite3.c:9238
#define SQLITE_MUTEX_RECURSIVE
Definition: sqlite3.c:6467
SQLITE_PRIVATE int sqlite3MutexInit(void)
Definition: sqlite3.c:19135

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter ( sqlite3_mutex p)

Definition at line 19214 of file sqlite3.c.

References Sqlite3Config::mutex, and sqlite3_mutex_methods::xMutexEnter.

Referenced by sqlite3_auto_extension(), sqlite3_backup_finish(), sqlite3_backup_init(), sqlite3_backup_step(), sqlite3_blob_close(), sqlite3_blob_open(), sqlite3_blob_reopen(), sqlite3_busy_handler(), sqlite3_cancel_auto_extension(), sqlite3_clear_bindings(), sqlite3_collation_needed(), sqlite3_collation_needed16(), sqlite3_commit_hook(), sqlite3_create_collation16(), sqlite3_create_collation_v2(), sqlite3_create_function16(), sqlite3_create_function_v2(), sqlite3_db_release_memory(), sqlite3_db_status(), sqlite3_declare_vtab(), sqlite3_enable_load_extension(), sqlite3_errmsg(), sqlite3_errmsg16(), sqlite3_exec(), sqlite3_extended_result_codes(), sqlite3_file_control(), sqlite3_finalize(), sqlite3_free(), sqlite3_initialize(), sqlite3_load_extension(), sqlite3_next_stmt(), sqlite3_overload_function(), sqlite3_profile(), sqlite3_progress_handler(), sqlite3_randomness(), sqlite3_reset(), sqlite3_reset_auto_extension(), sqlite3_rollback_hook(), sqlite3_set_authorizer(), sqlite3_soft_heap_limit64(), sqlite3_status64(), sqlite3_step(), sqlite3_table_column_metadata(), sqlite3_test_control(), sqlite3_trace(), sqlite3_update_hook(), sqlite3_vfs_find(), sqlite3_vfs_register(), sqlite3_vfs_unregister(), sqlite3_vtab_config(), sqlite3_wal_checkpoint_v2(), sqlite3_wal_hook(), sqlite3AutoLoadExtensions(), sqlite3BackupUpdate(), sqlite3BtreeOpen(), sqlite3Malloc(), sqlite3Realloc(), sqlite3ScratchFree(), sqlite3ScratchMalloc(), and sqlite3TransferBindings().

19214  {
19215  if( p ){
19216  sqlite3GlobalConfig.mutex.xMutexEnter(p);
19217  }
19218 }
#define sqlite3GlobalConfig
Definition: sqlite3.c:9238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_free ( sqlite3_mutex p)

Definition at line 19204 of file sqlite3.c.

References Sqlite3Config::mutex, and sqlite3_mutex_methods::xMutexFree.

Referenced by sqlite3_initialize(), and sqlite3LeaveMutexAndCloseZombie().

19204  {
19205  if( p ){
19206  sqlite3GlobalConfig.mutex.xMutexFree(p);
19207  }
19208 }
#define sqlite3GlobalConfig
Definition: sqlite3.c:9238
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held ( sqlite3_mutex )
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave ( sqlite3_mutex p)

Definition at line 19238 of file sqlite3.c.

References Sqlite3Config::mutex, and sqlite3_mutex_methods::xMutexLeave.

Referenced by sqlite3_auto_extension(), sqlite3_backup_init(), sqlite3_backup_step(), sqlite3_bind_double(), sqlite3_bind_int64(), sqlite3_bind_null(), sqlite3_bind_zeroblob(), sqlite3_blob_close(), sqlite3_blob_open(), sqlite3_blob_reopen(), sqlite3_busy_handler(), sqlite3_cancel_auto_extension(), sqlite3_clear_bindings(), sqlite3_collation_needed(), sqlite3_collation_needed16(), sqlite3_commit_hook(), sqlite3_create_collation16(), sqlite3_create_collation_v2(), sqlite3_create_function16(), sqlite3_create_function_v2(), sqlite3_db_release_memory(), sqlite3_db_status(), sqlite3_declare_vtab(), sqlite3_enable_load_extension(), sqlite3_errmsg(), sqlite3_errmsg16(), sqlite3_exec(), sqlite3_extended_result_codes(), sqlite3_file_control(), sqlite3_free(), sqlite3_initialize(), sqlite3_load_extension(), sqlite3_next_stmt(), sqlite3_overload_function(), sqlite3_profile(), sqlite3_progress_handler(), sqlite3_randomness(), sqlite3_reset(), sqlite3_reset_auto_extension(), sqlite3_rollback_hook(), sqlite3_set_authorizer(), sqlite3_soft_heap_limit64(), sqlite3_status64(), sqlite3_step(), sqlite3_table_column_metadata(), sqlite3_test_control(), sqlite3_trace(), sqlite3_update_hook(), sqlite3_vfs_find(), sqlite3_vfs_register(), sqlite3_vfs_unregister(), sqlite3_vtab_config(), sqlite3_wal_checkpoint_v2(), sqlite3_wal_hook(), sqlite3AutoLoadExtensions(), sqlite3BackupUpdate(), sqlite3BtreeOpen(), sqlite3LeaveMutexAndCloseZombie(), sqlite3Malloc(), sqlite3Realloc(), sqlite3ScratchFree(), sqlite3ScratchMalloc(), and sqlite3TransferBindings().

19238  {
19239  if( p ){
19240  sqlite3GlobalConfig.mutex.xMutexLeave(p);
19241  }
19242 }
#define sqlite3GlobalConfig
Definition: sqlite3.c:9238
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_notheld ( sqlite3_mutex )
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_try ( sqlite3_mutex p)

Definition at line 19224 of file sqlite3.c.

References Sqlite3Config::mutex, and sqlite3_mutex_methods::xMutexTry.

19224  {
19225  int rc = SQLITE_OK;
19226  if( p ){
19227  return sqlite3GlobalConfig.mutex.xMutexTry(p);
19228  }
19229  return rc;
19230 }
#define sqlite3GlobalConfig
Definition: sqlite3.c:9238
int rc
Definition: sqlite3.c:14837
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_API sqlite3_stmt *SQLITE_STDCALL sqlite3_next_stmt ( sqlite3 pDb,
sqlite3_stmt pStmt 
)

Definition at line 70482 of file sqlite3.c.

References sqlite3::mutex, Vdbe::pNext, sqlite3::pVdbe, sqlite3_mutex_enter(), and sqlite3_mutex_leave().

70482  {
70484 #ifdef SQLITE_ENABLE_API_ARMOR
70485  if( !sqlite3SafetyCheckOk(pDb) ){
70486  (void)SQLITE_MISUSE_BKPT;
70487  return 0;
70488  }
70489 #endif
70490  sqlite3_mutex_enter(pDb->mutex);
70491  if( pStmt==0 ){
70492  pNext = (sqlite3_stmt*)pDb->pVdbe;
70493  }else{
70494  pNext = (sqlite3_stmt*)((Vdbe*)pStmt)->pNext;
70495  }
70496  sqlite3_mutex_leave(pDb->mutex);
70497  return pNext;
70498 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
struct sqlite3_stmt sqlite3_stmt
Definition: sqlite3.c:3302
struct Vdbe * pVdbe
Definition: sqlite3.c:10993
Vdbe * pNext
Definition: sqlite3.c:14829
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_open ( const char *  filename,
sqlite3 **  ppDb 
)

Definition at line 130908 of file sqlite3.c.

130911  {
130912  return openDatabase(zFilename, ppDb,
130914 }
#define SQLITE_OPEN_CREATE
Definition: sqlite3.c:724
#define SQLITE_OPEN_READWRITE
Definition: sqlite3.c:723
SQLITE_API int SQLITE_STDCALL sqlite3_open16 ( const void *  filename,
sqlite3 **  ppDb 
)

Definition at line 130928 of file sqlite3.c.

References Db::pSchema, sqlite3_initialize(), sqlite3ApiExit(), sqlite3ValueFree(), sqlite3ValueNew(), and sqlite3ValueSetStr().

130931  {
130932  char const *zFilename8; /* zFilename encoded in UTF-8 instead of UTF-16 */
130933  sqlite3_value *pVal;
130934  int rc;
130935 
130936 #ifdef SQLITE_ENABLE_API_ARMOR
130937  if( ppDb==0 ) return SQLITE_MISUSE_BKPT;
130938 #endif
130939  *ppDb = 0;
130940 #ifndef SQLITE_OMIT_AUTOINIT
130941  rc = sqlite3_initialize();
130942  if( rc ) return rc;
130943 #endif
130944  if( zFilename==0 ) zFilename = "\000\000";
130945  pVal = sqlite3ValueNew(0);
130946  sqlite3ValueSetStr(pVal, -1, zFilename, SQLITE_UTF16NATIVE, SQLITE_STATIC);
130947  zFilename8 = sqlite3ValueText(pVal, SQLITE_UTF8);
130948  if( zFilename8 ){
130949  rc = openDatabase(zFilename8, ppDb,
130951  assert( *ppDb || rc==SQLITE_NOMEM );
130952  if( rc==SQLITE_OK && !DbHasProperty(*ppDb, 0, DB_SchemaLoaded) ){
130953  SCHEMA_ENC(*ppDb) = ENC(*ppDb) = SQLITE_UTF16NATIVE;
130954  }
130955  }else{
130956  rc = SQLITE_NOMEM;
130957  }
130958  sqlite3ValueFree(pVal);
130959 
130960  return sqlite3ApiExit(0, rc);
130961 }
#define DB_SchemaLoaded
Definition: sqlite3.c:10894
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
SQLITE_PRIVATE sqlite3_value * sqlite3ValueNew(sqlite3 *)
Definition: sqlite3.c:64183
#define SQLITE_NOMEM
Definition: sqlite3.c:619
SQLITE_API int SQLITE_STDCALL sqlite3_initialize(void)
Definition: sqlite3.c:128111
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
#define SQLITE_UTF8
Definition: sqlite3.c:4463
int rc
Definition: sqlite3.c:14837
#define SQLITE_OPEN_CREATE
Definition: sqlite3.c:724
#define SQLITE_UTF16NATIVE
Definition: sqlite3.c:9055
#define SQLITE_OPEN_READWRITE
Definition: sqlite3.c:723
SQLITE_PRIVATE void sqlite3ValueSetStr(sqlite3_value *, int, const void *, u8, void(*)(void *))
Definition: sqlite3.c:64779
#define ENC(db)
Definition: sqlite3.c:11110
#define DbHasProperty(D, I, P)
Definition: sqlite3.c:10879
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE void sqlite3ValueFree(sqlite3_value *)
Definition: sqlite3.c:64792
SQLITE_PRIVATE const void * sqlite3ValueText(sqlite3_value *, u8)
Definition: sqlite3.c:64166
#define SQLITE_STATIC
Definition: sqlite3.c:4701
#define SCHEMA_ENC(db)
Definition: sqlite3.c:11109

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_open_v2 ( const char *  filename,
sqlite3 **  ppDb,
int  flags,
const char *  zVfs 
)

Definition at line 130915 of file sqlite3.c.

130920  {
130921  return openDatabase(filename, ppDb, (unsigned int)flags, zVfs);
130922 }
SQLITE_API int SQLITE_STDCALL sqlite3_os_end ( void  )

Definition at line 33028 of file sqlite3.c.

Referenced by sqlite3_shutdown().

33028  {
33029  return SQLITE_OK;
33030 }
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_API int SQLITE_STDCALL sqlite3_os_init ( void  )

Definition at line 32929 of file sqlite3.c.

References sqlite3_vfs_register().

Referenced by sqlite3OsInit().

32929  {
32930  /*
32931  ** The following macro defines an initializer for an sqlite3_vfs object.
32932  ** The name of the VFS is NAME. The pAppData is a pointer to a pointer
32933  ** to the "finder" function. (pAppData is a pointer to a pointer because
32934  ** silly C90 rules prohibit a void* from being cast to a function pointer
32935  ** and so we have to go through the intermediate pointer to avoid problems
32936  ** when compiling with -pedantic-errors on GCC.)
32937  **
32938  ** The FINDER parameter to this macro is the name of the pointer to the
32939  ** finder-function. The finder-function returns a pointer to the
32940  ** sqlite_io_methods object that implements the desired locking
32941  ** behaviors. See the division above that contains the IOMETHODS
32942  ** macro for addition information on finder-functions.
32943  **
32944  ** Most finders simply return a pointer to a fixed sqlite3_io_methods
32945  ** object. But the "autolockIoFinder" available on MacOSX does a little
32946  ** more than that; it looks at the filesystem type that hosts the
32947  ** database file and tries to choose an locking method appropriate for
32948  ** that filesystem time.
32949  */
32950  #define UNIXVFS(VFSNAME, FINDER) { \
32951  3, /* iVersion */ \
32952  sizeof(unixFile), /* szOsFile */ \
32953  MAX_PATHNAME, /* mxPathname */ \
32954  0, /* pNext */ \
32955  VFSNAME, /* zName */ \
32956  (void*)&FINDER, /* pAppData */ \
32957  unixOpen, /* xOpen */ \
32958  unixDelete, /* xDelete */ \
32959  unixAccess, /* xAccess */ \
32960  unixFullPathname, /* xFullPathname */ \
32961  unixDlOpen, /* xDlOpen */ \
32962  unixDlError, /* xDlError */ \
32963  unixDlSym, /* xDlSym */ \
32964  unixDlClose, /* xDlClose */ \
32965  unixRandomness, /* xRandomness */ \
32966  unixSleep, /* xSleep */ \
32967  unixCurrentTime, /* xCurrentTime */ \
32968  unixGetLastError, /* xGetLastError */ \
32969  unixCurrentTimeInt64, /* xCurrentTimeInt64 */ \
32970  unixSetSystemCall, /* xSetSystemCall */ \
32971  unixGetSystemCall, /* xGetSystemCall */ \
32972  unixNextSystemCall, /* xNextSystemCall */ \
32973  }
32974 
32975  /*
32976  ** All default VFSes for unix are contained in the following array.
32977  **
32978  ** Note that the sqlite3_vfs.pNext field of the VFS object is modified
32979  ** by the SQLite core when the VFS is registered. So the following
32980  ** array cannot be const.
32981  */
32982  static sqlite3_vfs aVfs[] = {
32983 #if SQLITE_ENABLE_LOCKING_STYLE && defined(__APPLE__)
32984  UNIXVFS("unix", autolockIoFinder ),
32985 #elif OS_VXWORKS
32986  UNIXVFS("unix", vxworksIoFinder ),
32987 #else
32988  UNIXVFS("unix", posixIoFinder ),
32989 #endif
32990  UNIXVFS("unix-none", nolockIoFinder ),
32991  UNIXVFS("unix-dotfile", dotlockIoFinder ),
32992  UNIXVFS("unix-excl", posixIoFinder ),
32993 #if OS_VXWORKS
32994  UNIXVFS("unix-namedsem", semIoFinder ),
32995 #endif
32996 #if SQLITE_ENABLE_LOCKING_STYLE || OS_VXWORKS
32997  UNIXVFS("unix-posix", posixIoFinder ),
32998 #endif
32999 #if SQLITE_ENABLE_LOCKING_STYLE
33000  UNIXVFS("unix-flock", flockIoFinder ),
33001 #endif
33002 #if SQLITE_ENABLE_LOCKING_STYLE && defined(__APPLE__)
33003  UNIXVFS("unix-afp", afpIoFinder ),
33004  UNIXVFS("unix-nfs", nfsIoFinder ),
33005  UNIXVFS("unix-proxy", proxyIoFinder ),
33006 #endif
33007  };
33008  unsigned int i; /* Loop counter */
33009 
33010  /* Double-check that the aSyscall[] array has been constructed
33011  ** correctly. See ticket [bb3a86e890c8e96ab] */
33012  assert( ArraySize(aSyscall)==25 );
33013 
33014  /* Register all VFSes defined in the aVfs[] array */
33015  for(i=0; i<(sizeof(aVfs)/sizeof(sqlite3_vfs)); i++){
33016  sqlite3_vfs_register(&aVfs[i], i==0);
33017  }
33018  return SQLITE_OK;
33019 }
#define ArraySize(X)
Definition: sqlite3.c:9198
SQLITE_API int SQLITE_STDCALL sqlite3_vfs_register(sqlite3_vfs *, int makeDflt)
Definition: sqlite3.c:16821
#define SQLITE_OK
Definition: sqlite3.c:611
#define UNIXVFS(VFSNAME, FINDER)

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_overload_function ( sqlite3 db,
const char *  zFuncName,
int  nArg 
)

Definition at line 129699 of file sqlite3.c.

References sqlite3::mutex, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3ApiExit(), sqlite3CreateFunc(), sqlite3FindFunction(), sqlite3InvalidFunction(), and sqlite3Strlen30().

Referenced by sqlite3RegisterBuiltinFunctions().

129703  {
129704  int nName = sqlite3Strlen30(zName);
129705  int rc = SQLITE_OK;
129706 
129707 #ifdef SQLITE_ENABLE_API_ARMOR
129708  if( !sqlite3SafetyCheckOk(db) || zName==0 || nArg<-2 ){
129709  return SQLITE_MISUSE_BKPT;
129710  }
129711 #endif
129712  sqlite3_mutex_enter(db->mutex);
129713  if( sqlite3FindFunction(db, zName, nName, nArg, SQLITE_UTF8, 0)==0 ){
129714  rc = sqlite3CreateFunc(db, zName, nArg, SQLITE_UTF8,
129715  0, sqlite3InvalidFunction, 0, 0, 0);
129716  }
129717  rc = sqlite3ApiExit(db, rc);
129718  sqlite3_mutex_leave(db->mutex);
129719  return rc;
129720 }
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
#define SQLITE_UTF8
Definition: sqlite3.c:4463
int rc
Definition: sqlite3.c:14837
SQLITE_PRIVATE int sqlite3CreateFunc(sqlite3 *, const char *, int, int, void *, void(*)(sqlite3_context *, int, sqlite3_value **), void(*)(sqlite3_context *, int, sqlite3_value **), void(*)(sqlite3_context *), FuncDestructor *pDestructor)
Definition: sqlite3.c:129502
SQLITE_PRIVATE void sqlite3InvalidFunction(sqlite3_context *, int, sqlite3_value **)
Definition: sqlite3.c:69672
SQLITE_PRIVATE int sqlite3Strlen30(const char *)
Definition: sqlite3.c:23546
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE FuncDef * sqlite3FindFunction(sqlite3 *, const char *, int, int, u8, u8)
Definition: sqlite3.c:95458
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_prepare ( sqlite3 db,
const char *  zSql,
int  nByte,
sqlite3_stmt **  ppStmt,
const char **  pzTail 
)

Definition at line 106361 of file sqlite3.c.

Referenced by sqlite3InitCallback().

106367  {
106368  int rc;
106369  rc = sqlite3LockAndPrepare(db,zSql,nBytes,0,0,ppStmt,pzTail);
106370  assert( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 ); /* VERIFY: F13021 */
106371  return rc;
106372 }
int rc
Definition: sqlite3.c:14837
#define SQLITE_OK
Definition: sqlite3.c:611
char * zSql
Definition: sqlite3.c:14865
SQLITE_API int SQLITE_STDCALL sqlite3_prepare16 ( sqlite3 db,
const void *  zSql,
int  nByte,
sqlite3_stmt **  ppStmt,
const void **  pzTail 
)

Definition at line 106449 of file sqlite3.c.

106455  {
106456  int rc;
106457  rc = sqlite3Prepare16(db,zSql,nBytes,0,ppStmt,pzTail);
106458  assert( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 ); /* VERIFY: F13021 */
106459  return rc;
106460 }
int rc
Definition: sqlite3.c:14837
#define SQLITE_OK
Definition: sqlite3.c:611
char * zSql
Definition: sqlite3.c:14865
SQLITE_API int SQLITE_STDCALL sqlite3_prepare16_v2 ( sqlite3 db,
const void *  zSql,
int  nByte,
sqlite3_stmt **  ppStmt,
const void **  pzTail 
)

Definition at line 106461 of file sqlite3.c.

106467  {
106468  int rc;
106469  rc = sqlite3Prepare16(db,zSql,nBytes,1,ppStmt,pzTail);
106470  assert( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 ); /* VERIFY: F13021 */
106471  return rc;
106472 }
int rc
Definition: sqlite3.c:14837
#define SQLITE_OK
Definition: sqlite3.c:611
char * zSql
Definition: sqlite3.c:14865
SQLITE_API int SQLITE_STDCALL sqlite3_prepare_v2 ( sqlite3 db,
const char *  zSql,
int  nByte,
sqlite3_stmt **  ppStmt,
const char **  pzTail 
)

Definition at line 106373 of file sqlite3.c.

Referenced by sqlite3_exec().

106379  {
106380  int rc;
106381  rc = sqlite3LockAndPrepare(db,zSql,nBytes,1,0,ppStmt,pzTail);
106382  assert( rc==SQLITE_OK || ppStmt==0 || *ppStmt==0 ); /* VERIFY: F13021 */
106383  return rc;
106384 }
int rc
Definition: sqlite3.c:14837
#define SQLITE_OK
Definition: sqlite3.c:611
char * zSql
Definition: sqlite3.c:14865
SQLITE_API void *SQLITE_STDCALL sqlite3_profile ( sqlite3 db,
void(*)(void *, const char *, sqlite3_uint64 xProfile,
void *  pArg 
)

Definition at line 129755 of file sqlite3.c.

References sqlite3::mutex, sqlite3::pProfileArg, sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3::xProfile.

129759  {
129760  void *pOld;
129761 
129762 #ifdef SQLITE_ENABLE_API_ARMOR
129763  if( !sqlite3SafetyCheckOk(db) ){
129764  (void)SQLITE_MISUSE_BKPT;
129765  return 0;
129766  }
129767 #endif
129768  sqlite3_mutex_enter(db->mutex);
129769  pOld = db->pProfileArg;
129770  db->xProfile = xProfile;
129771  db->pProfileArg = pArg;
129772  sqlite3_mutex_leave(db->mutex);
129773  return pOld;
129774 }
void * pProfileArg
Definition: sqlite3.c:11037
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
void(* xProfile)(void *, const char *, u64)
Definition: sqlite3.c:11036
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_progress_handler ( sqlite3 db,
int  nOps,
int(*)(void *)  xProgress,
void *  pArg 
)

Definition at line 129438 of file sqlite3.c.

References sqlite3::mutex, sqlite3::nProgressOps, sqlite3::pProgressArg, sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3::xProgress.

129443  {
129444 #ifdef SQLITE_ENABLE_API_ARMOR
129445  if( !sqlite3SafetyCheckOk(db) ){
129446  (void)SQLITE_MISUSE_BKPT;
129447  return;
129448  }
129449 #endif
129450  sqlite3_mutex_enter(db->mutex);
129451  if( nOps>0 ){
129452  db->xProgress = xProgress;
129453  db->nProgressOps = (unsigned)nOps;
129454  db->pProgressArg = pArg;
129455  }else{
129456  db->xProgress = 0;
129457  db->nProgressOps = 0;
129458  db->pProgressArg = 0;
129459  }
129460  sqlite3_mutex_leave(db->mutex);
129461 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
unsigned nProgressOps
Definition: sqlite3.c:11064
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
void * pProgressArg
Definition: sqlite3.c:11063
int(* xProgress)(void *)
Definition: sqlite3.c:11062
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_randomness ( int  N,
void *  P 
)

Definition at line 22539 of file sqlite3.c.

References sqlite3_initialize(), sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3_vfs_find(), sqlite3MutexAlloc(), and sqlite3OsRandomness().

Referenced by sqlite3_test_control(), sqlite3BitvecBuiltinTest(), sqlite3VdbeExec(), and sqlite3WalFrames().

22539  {
22540  unsigned char t;
22541  unsigned char *zBuf = pBuf;
22542 
22543  /* The "wsdPrng" macro will resolve to the pseudo-random number generator
22544  ** state vector. If writable static data is unsupported on the target,
22545  ** we have to locate the state vector at run-time. In the more common
22546  ** case where writable static data is supported, wsdPrng can refer directly
22547  ** to the "sqlite3Prng" state vector declared above.
22548  */
22549 #ifdef SQLITE_OMIT_WSD
22550  struct sqlite3PrngType *p = &GLOBAL(struct sqlite3PrngType, sqlite3Prng);
22551 # define wsdPrng p[0]
22552 #else
22553 # define wsdPrng sqlite3Prng
22554 #endif
22555 
22556 #if SQLITE_THREADSAFE
22557  sqlite3_mutex *mutex;
22558 #endif
22559 
22560 #ifndef SQLITE_OMIT_AUTOINIT
22561  if( sqlite3_initialize() ) return;
22562 #endif
22563 
22564 #if SQLITE_THREADSAFE
22566 #endif
22567 
22568  sqlite3_mutex_enter(mutex);
22569  if( N<=0 || pBuf==0 ){
22570  wsdPrng.isInit = 0;
22571  sqlite3_mutex_leave(mutex);
22572  return;
22573  }
22574 
22575  /* Initialize the state of the random number generator once,
22576  ** the first time this routine is called. The seed value does
22577  ** not need to contain a lot of randomness since we are not
22578  ** trying to do secure encryption or anything like that...
22579  **
22580  ** Nothing in this file or anywhere else in SQLite does any kind of
22581  ** encryption. The RC4 algorithm is being used as a PRNG (pseudo-random
22582  ** number generator) not as an encryption device.
22583  */
22584  if( !wsdPrng.isInit ){
22585  int i;
22586  char k[256];
22587  wsdPrng.j = 0;
22588  wsdPrng.i = 0;
22590  for(i=0; i<256; i++){
22591  wsdPrng.s[i] = (u8)i;
22592  }
22593  for(i=0; i<256; i++){
22594  wsdPrng.j += wsdPrng.s[i] + k[i];
22595  t = wsdPrng.s[wsdPrng.j];
22596  wsdPrng.s[wsdPrng.j] = wsdPrng.s[i];
22597  wsdPrng.s[i] = t;
22598  }
22599  wsdPrng.isInit = 1;
22600  }
22601 
22602  assert( N>0 );
22603  do{
22604  wsdPrng.i++;
22605  t = wsdPrng.s[wsdPrng.i];
22606  wsdPrng.j += t;
22607  wsdPrng.s[wsdPrng.i] = wsdPrng.s[wsdPrng.j];
22608  wsdPrng.s[wsdPrng.j] = t;
22609  t += wsdPrng.s[wsdPrng.i];
22610  *(zBuf++) = wsdPrng.s[t];
22611  }while( --N );
22612  sqlite3_mutex_leave(mutex);
22613 }
#define wsdPrng
SQLITE_API sqlite3_vfs *SQLITE_STDCALL sqlite3_vfs_find(const char *zVfsName)
Definition: sqlite3.c:16775
#define GLOBAL(t, v)
Definition: sqlite3.c:9237
UINT8_TYPE u8
Definition: sqlite3.c:8959
SQLITE_API int SQLITE_STDCALL sqlite3_initialize(void)
Definition: sqlite3.c:128111
#define SQLITE_MUTEX_STATIC_PRNG
Definition: sqlite3.c:6472
SQLITE_PRIVATE sqlite3_mutex * sqlite3MutexAlloc(int)
Definition: sqlite3.c:19193
SQLITE_PRIVATE int sqlite3OsRandomness(sqlite3_vfs *, int, char *)
Definition: sqlite3.c:16700
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API void *SQLITE_STDCALL sqlite3_realloc ( void *  pOld,
int  n 
)

Definition at line 21119 of file sqlite3.c.

References sqlite3_initialize(), and sqlite3Realloc().

21119  {
21120 #ifndef SQLITE_OMIT_AUTOINIT
21121  if( sqlite3_initialize() ) return 0;
21122 #endif
21123  if( n<0 ) n = 0; /* IMP: R-26507-47431 */
21124  return sqlite3Realloc(pOld, n);
21125 }
SQLITE_API int SQLITE_STDCALL sqlite3_initialize(void)
Definition: sqlite3.c:128111
SQLITE_PRIVATE void * sqlite3Realloc(void *, u64)
Definition: sqlite3.c:21067

Here is the call graph for this function:

SQLITE_API void *SQLITE_STDCALL sqlite3_realloc64 ( void *  pOld,
sqlite3_uint64  n 
)

Definition at line 21126 of file sqlite3.c.

References sqlite3_initialize(), and sqlite3Realloc().

Referenced by sqlite3DbRealloc().

21126  {
21127 #ifndef SQLITE_OMIT_AUTOINIT
21128  if( sqlite3_initialize() ) return 0;
21129 #endif
21130  return sqlite3Realloc(pOld, n);
21131 }
SQLITE_API int SQLITE_STDCALL sqlite3_initialize(void)
Definition: sqlite3.c:128111
SQLITE_PRIVATE void * sqlite3Realloc(void *, u64)
Definition: sqlite3.c:21067

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_release_memory ( int  n)

Definition at line 20545 of file sqlite3.c.

Referenced by sqlite3_soft_heap_limit64().

20545  {
20546 #ifdef SQLITE_ENABLE_MEMORY_MANAGEMENT
20547  return sqlite3PcacheReleaseMemory(n);
20548 #else
20549  /* IMPLEMENTATION-OF: R-34391-24921 The sqlite3_release_memory() routine
20550  ** is a no-op returning zero if SQLite is not compiled with
20551  ** SQLITE_ENABLE_MEMORY_MANAGEMENT. */
20552  UNUSED_PARAMETER(n);
20553  return 0;
20554 #endif
20555 }
#define UNUSED_PARAMETER(x)
Definition: sqlite3.c:9257
SQLITE_API int SQLITE_STDCALL sqlite3_reset ( sqlite3_stmt pStmt)

Definition at line 69097 of file sqlite3.c.

References Vdbe::db, sqlite3::mutex, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3ApiExit(), sqlite3VdbeReset(), and sqlite3VdbeRewind().

Referenced by sqlite3_step().

69097  {
69098  int rc;
69099  if( pStmt==0 ){
69100  rc = SQLITE_OK;
69101  }else{
69102  Vdbe *v = (Vdbe*)pStmt;
69104  rc = sqlite3VdbeReset(v);
69105  sqlite3VdbeRewind(v);
69106  assert( (rc & (v->db->errMask))==rc );
69107  rc = sqlite3ApiExit(v->db, rc);
69109  }
69110  return rc;
69111 }
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
int errMask
Definition: sqlite3.c:11003
SQLITE_PRIVATE int sqlite3VdbeReset(Vdbe *)
Definition: sqlite3.c:67396
sqlite3 * db
Definition: sqlite3.c:14817
SQLITE_PRIVATE void sqlite3VdbeRewind(Vdbe *)
Definition: sqlite3.c:66413
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_reset_auto_extension ( void  )

Definition at line 103079 of file sqlite3.c.

References sqlite3_free(), sqlite3_initialize(), sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3MutexAlloc().

Referenced by sqlite3_shutdown().

103079  {
103080 #ifndef SQLITE_OMIT_AUTOINIT
103081  if( sqlite3_initialize()==SQLITE_OK )
103082 #endif
103083  {
103084 #if SQLITE_THREADSAFE
103086 #endif
103087  wsdAutoextInit;
103088  sqlite3_mutex_enter(mutex);
103089  sqlite3_free(wsdAutoext.aExt);
103090  wsdAutoext.aExt = 0;
103091  wsdAutoext.nExt = 0;
103092  sqlite3_mutex_leave(mutex);
103093  }
103094 }
#define SQLITE_MUTEX_STATIC_MASTER
Definition: sqlite3.c:6468
SQLITE_API int SQLITE_STDCALL sqlite3_initialize(void)
Definition: sqlite3.c:128111
#define wsdAutoextInit
Definition: sqlite3.c:103002
SQLITE_PRIVATE sqlite3_mutex * sqlite3MutexAlloc(int)
Definition: sqlite3.c:19193
#define SQLITE_OK
Definition: sqlite3.c:611
#define wsdAutoext
Definition: sqlite3.c:103003
SQLITE_API void SQLITE_STDCALL sqlite3_free(void *)
Definition: sqlite3.c:21010
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_result_blob ( sqlite3_context pCtx,
const void *  z,
int  n,
void(*)(void *)  xDel 
)

Definition at line 69259 of file sqlite3.c.

69264  {
69265  assert( n>=0 );
69266  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69267  setResultStrOrError(pCtx, z, n, 0, xDel);
69268 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
sqlite3 * db
Definition: sqlite3.c:14680
SQLITE_API void SQLITE_STDCALL sqlite3_result_blob64 ( sqlite3_context pCtx,
const void *  z,
sqlite3_uint64  n,
void(*)(void *)  xDel 
)

Definition at line 69269 of file sqlite3.c.

69274  {
69275  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69276  assert( xDel!=SQLITE_DYNAMIC );
69277  if( n>0x7fffffff ){
69278  (void)invokeValueDestructor(z, xDel, pCtx);
69279  }else{
69280  setResultStrOrError(pCtx, z, (int)n, 0, xDel);
69281  }
69282 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
#define SQLITE_DYNAMIC
Definition: sqlite3.c:9213
sqlite3 * db
Definition: sqlite3.c:14680
SQLITE_API void SQLITE_STDCALL sqlite3_result_double ( sqlite3_context pCtx,
double  rVal 
)

Definition at line 69283 of file sqlite3.c.

References sqlite3_context::pOut, and sqlite3VdbeMemSetDouble().

69283  {
69284  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69285  sqlite3VdbeMemSetDouble(pCtx->pOut, rVal);
69286 }
SQLITE_PRIVATE void sqlite3VdbeMemSetDouble(Mem *, double)
Definition: sqlite3.c:63821
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
sqlite3 * db
Definition: sqlite3.c:14680

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_result_error ( sqlite3_context pCtx,
const char *  z,
int  n 
)

Definition at line 69287 of file sqlite3.c.

References sqlite3_context::fErrorOrAux, sqlite3_context::isError, sqlite3_context::pOut, and sqlite3VdbeMemSetStr().

Referenced by sqlite3InvalidFunction().

69287  {
69288  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69289  pCtx->isError = SQLITE_ERROR;
69290  pCtx->fErrorOrAux = 1;
69292 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_PRIVATE int sqlite3VdbeMemSetStr(Mem *, const char *, int, u8, void(*)(void *))
Definition: sqlite3.c:63967
#define SQLITE_UTF8
Definition: sqlite3.c:4463
#define SQLITE_ERROR
Definition: sqlite3.c:613
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
#define SQLITE_TRANSIENT
Definition: sqlite3.c:4702
sqlite3 * db
Definition: sqlite3.c:14680

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_result_error16 ( sqlite3_context pCtx,
const void *  z,
int  n 
)

Definition at line 69294 of file sqlite3.c.

References sqlite3_context::fErrorOrAux, and sqlite3_context::isError.

69294  {
69295  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69296  pCtx->isError = SQLITE_ERROR;
69297  pCtx->fErrorOrAux = 1;
69299 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_PRIVATE int sqlite3VdbeMemSetStr(Mem *, const char *, int, u8, void(*)(void *))
Definition: sqlite3.c:63967
#define SQLITE_ERROR
Definition: sqlite3.c:613
#define SQLITE_UTF16NATIVE
Definition: sqlite3.c:9055
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
#define SQLITE_TRANSIENT
Definition: sqlite3.c:4702
sqlite3 * db
Definition: sqlite3.c:14680
SQLITE_API void SQLITE_STDCALL sqlite3_result_error_code ( sqlite3_context pCtx,
int  errCode 
)

Definition at line 69375 of file sqlite3.c.

References sqlite3_context::fErrorOrAux, sqlite3_value::flags, sqlite3_context::isError, sqlite3_context::pOut, sqlite3ErrStr(), and sqlite3VdbeMemSetStr().

69375  {
69376  pCtx->isError = errCode;
69377  pCtx->fErrorOrAux = 1;
69378 #ifdef SQLITE_DEBUG
69379  if( pCtx->pVdbe ) pCtx->pVdbe->rcApp = errCode;
69380 #endif
69381  if( pCtx->pOut->flags & MEM_Null ){
69382  sqlite3VdbeMemSetStr(pCtx->pOut, sqlite3ErrStr(errCode), -1,
69384  }
69385 }
u16 flags
Definition: sqlite3.c:14672
SQLITE_PRIVATE int sqlite3VdbeMemSetStr(Mem *, const char *, int, u8, void(*)(void *))
Definition: sqlite3.c:63967
#define SQLITE_UTF8
Definition: sqlite3.c:4463
SQLITE_PRIVATE const char * sqlite3ErrStr(int)
Definition: sqlite3.c:129300
#define MEM_Null
Definition: sqlite3.c:14700
#define SQLITE_STATIC
Definition: sqlite3.c:4701

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_result_error_nomem ( sqlite3_context pCtx)

Definition at line 69397 of file sqlite3.c.

References sqlite3_value::db, sqlite3_context::fErrorOrAux, sqlite3_context::isError, sqlite3::mallocFailed, sqlite3_context::pOut, and sqlite3VdbeMemSetNull().

69397  {
69398  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69399  sqlite3VdbeMemSetNull(pCtx->pOut);
69400  pCtx->isError = SQLITE_NOMEM;
69401  pCtx->fErrorOrAux = 1;
69402  pCtx->pOut->db->mallocFailed = 1;
69403 }
#define SQLITE_NOMEM
Definition: sqlite3.c:619
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
SQLITE_PRIVATE void sqlite3VdbeMemSetNull(Mem *)
Definition: sqlite3.c:63767
u8 mallocFailed
Definition: sqlite3.c:11008
sqlite3 * db
Definition: sqlite3.c:14680

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_result_error_toobig ( sqlite3_context pCtx)

Definition at line 69388 of file sqlite3.c.

References sqlite3_context::fErrorOrAux, sqlite3_context::isError, sqlite3_context::pOut, and sqlite3VdbeMemSetStr().

69388  {
69389  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69390  pCtx->isError = SQLITE_TOOBIG;
69391  pCtx->fErrorOrAux = 1;
69392  sqlite3VdbeMemSetStr(pCtx->pOut, "string or blob too big", -1,
69394 }
#define SQLITE_TOOBIG
Definition: sqlite3.c:630
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_PRIVATE int sqlite3VdbeMemSetStr(Mem *, const char *, int, u8, void(*)(void *))
Definition: sqlite3.c:63967
#define SQLITE_UTF8
Definition: sqlite3.c:4463
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
sqlite3 * db
Definition: sqlite3.c:14680
#define SQLITE_STATIC
Definition: sqlite3.c:4701

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_result_int ( sqlite3_context pCtx,
int  iVal 
)

Definition at line 69301 of file sqlite3.c.

References sqlite3_context::pOut, and sqlite3VdbeMemSetInt64().

69301  {
69302  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69303  sqlite3VdbeMemSetInt64(pCtx->pOut, (i64)iVal);
69304 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
sqlite_int64 i64
Definition: sqlite3.c:8954
sqlite3 * db
Definition: sqlite3.c:14680
SQLITE_PRIVATE void sqlite3VdbeMemSetInt64(Mem *, i64)
Definition: sqlite3.c:63807

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_result_int64 ( sqlite3_context pCtx,
sqlite3_int64  iVal 
)

Definition at line 69305 of file sqlite3.c.

References sqlite3_context::pOut, and sqlite3VdbeMemSetInt64().

69305  {
69306  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69307  sqlite3VdbeMemSetInt64(pCtx->pOut, iVal);
69308 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
sqlite3 * db
Definition: sqlite3.c:14680
SQLITE_PRIVATE void sqlite3VdbeMemSetInt64(Mem *, i64)
Definition: sqlite3.c:63807

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_result_null ( sqlite3_context pCtx)

Definition at line 69309 of file sqlite3.c.

References sqlite3_context::pOut, and sqlite3VdbeMemSetNull().

69309  {
69310  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69311  sqlite3VdbeMemSetNull(pCtx->pOut);
69312 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
SQLITE_PRIVATE void sqlite3VdbeMemSetNull(Mem *)
Definition: sqlite3.c:63767
sqlite3 * db
Definition: sqlite3.c:14680

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_result_text ( sqlite3_context pCtx,
const char *  z,
int  n,
void(*)(void *)  xDel 
)

Definition at line 69313 of file sqlite3.c.

69318  {
69319  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69320  setResultStrOrError(pCtx, z, n, SQLITE_UTF8, xDel);
69321 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_UTF8
Definition: sqlite3.c:4463
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
sqlite3 * db
Definition: sqlite3.c:14680
SQLITE_API void SQLITE_STDCALL sqlite3_result_text16 ( sqlite3_context pCtx,
const void *  z,
int  n,
void(*)(void *)  xDel 
)

Definition at line 69339 of file sqlite3.c.

69344  {
69345  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69346  setResultStrOrError(pCtx, z, n, SQLITE_UTF16NATIVE, xDel);
69347 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_UTF16NATIVE
Definition: sqlite3.c:9055
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
sqlite3 * db
Definition: sqlite3.c:14680
SQLITE_API void SQLITE_STDCALL sqlite3_result_text16be ( sqlite3_context pCtx,
const void *  z,
int  n,
void(*)(void *)  xDel 
)

Definition at line 69348 of file sqlite3.c.

69353  {
69354  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69355  setResultStrOrError(pCtx, z, n, SQLITE_UTF16BE, xDel);
69356 }
#define SQLITE_UTF16BE
Definition: sqlite3.c:4465
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
sqlite3 * db
Definition: sqlite3.c:14680
SQLITE_API void SQLITE_STDCALL sqlite3_result_text16le ( sqlite3_context pCtx,
const void *  z,
int  n,
void(*)(void *)  xDel 
)

Definition at line 69357 of file sqlite3.c.

69362  {
69363  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69364  setResultStrOrError(pCtx, z, n, SQLITE_UTF16LE, xDel);
69365 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_UTF16LE
Definition: sqlite3.c:4464
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
sqlite3 * db
Definition: sqlite3.c:14680
SQLITE_API void SQLITE_STDCALL sqlite3_result_text64 ( sqlite3_context pCtx,
const char *  z,
sqlite3_uint64  n,
void(*)(void *)  xDel,
unsigned char  encoding 
)

Definition at line 69322 of file sqlite3.c.

69328  {
69329  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69330  assert( xDel!=SQLITE_DYNAMIC );
69331  if( enc==SQLITE_UTF16 ) enc = SQLITE_UTF16NATIVE;
69332  if( n>0x7fffffff ){
69333  (void)invokeValueDestructor(z, xDel, pCtx);
69334  }else{
69335  setResultStrOrError(pCtx, z, (int)n, enc, xDel);
69336  }
69337 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_UTF16
Definition: sqlite3.c:4466
#define SQLITE_UTF16NATIVE
Definition: sqlite3.c:9055
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
#define SQLITE_DYNAMIC
Definition: sqlite3.c:9213
sqlite3 * db
Definition: sqlite3.c:14680
SQLITE_API void SQLITE_STDCALL sqlite3_result_value ( sqlite3_context pCtx,
sqlite3_value *  pValue 
)

Definition at line 69367 of file sqlite3.c.

References sqlite3_context::pOut, and sqlite3VdbeMemCopy().

69367  {
69368  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69369  sqlite3VdbeMemCopy(pCtx->pOut, pValue);
69370 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
sqlite3 * db
Definition: sqlite3.c:14680
SQLITE_PRIVATE int sqlite3VdbeMemCopy(Mem *, const Mem *)
Definition: sqlite3.c:63917

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_result_zeroblob ( sqlite3_context pCtx,
int  n 
)

Definition at line 69371 of file sqlite3.c.

References sqlite3_context::pOut, and sqlite3VdbeMemSetZeroBlob().

69371  {
69372  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69373  sqlite3VdbeMemSetZeroBlob(pCtx->pOut, n);
69374 }
SQLITE_PRIVATE void sqlite3VdbeMemSetZeroBlob(Mem *, int)
Definition: sqlite3.c:63782
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
sqlite3 * db
Definition: sqlite3.c:14680

Here is the call graph for this function:

SQLITE_API void *SQLITE_STDCALL sqlite3_rollback_hook ( sqlite3 db,
void(*)(void *)  xCallback,
void *  pArg 
)

Definition at line 129832 of file sqlite3.c.

References sqlite3::mutex, sqlite3::pRollbackArg, sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3::xRollbackCallback.

129836  {
129837  void *pRet;
129838 
129839 #ifdef SQLITE_ENABLE_API_ARMOR
129840  if( !sqlite3SafetyCheckOk(db) ){
129841  (void)SQLITE_MISUSE_BKPT;
129842  return 0;
129843  }
129844 #endif
129845  sqlite3_mutex_enter(db->mutex);
129846  pRet = db->pRollbackArg;
129847  db->xRollbackCallback = xCallback;
129848  db->pRollbackArg = pArg;
129849  sqlite3_mutex_leave(db->mutex);
129850  return pRet;
129851 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
void * pRollbackArg
Definition: sqlite3.c:11040
void(* xRollbackCallback)(void *)
Definition: sqlite3.c:11041
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_rtree_geometry_callback ( sqlite3 db,
const char *  zGeom,
int(*)(sqlite3_rtree_geometry *, int, sqlite3_rtree_dbl *, int *)  xGeom,
void *  pContext 
)
SQLITE_API int SQLITE_STDCALL sqlite3_rtree_query_callback ( sqlite3 db,
const char *  zQueryFunc,
int(*)(sqlite3_rtree_query_info *)  xQueryFunc,
void *  pContext,
void(*)(void *)  xDestructor 
)
SQLITE_API int SQLITE_STDCALL sqlite3_set_authorizer ( sqlite3 db,
int(*)(void *, int, const char *, const char *, const char *, const char *)  xAuth,
void *  pUserData 
)

Definition at line 90618 of file sqlite3.c.

References sqlite3::mutex, sqlite3::pAuthArg, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3ExpirePreparedStatements(), and sqlite3::xAuth.

90622  {
90623 #ifdef SQLITE_ENABLE_API_ARMOR
90624  if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
90625 #endif
90627  db->xAuth = (sqlite3_xauth)xAuth;
90628  db->pAuthArg = pArg;
90631  return SQLITE_OK;
90632 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_PRIVATE void sqlite3ExpirePreparedStatements(sqlite3 *)
Definition: sqlite3.c:68940
void * pAuthArg
Definition: sqlite3.c:11059
sqlite3_xauth xAuth
Definition: sqlite3.c:11058
#define SQLITE_OK
Definition: sqlite3.c:611
int(* sqlite3_xauth)(void *, int, const char *, const char *, const char *, const char *)
Definition: sqlite3.c:10983
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_set_auxdata ( sqlite3_context pCtx,
int  N,
void *  pAux,
void(*)(void *)  xDelete 
)

Definition at line 69748 of file sqlite3.c.

References sqlite3_context::fErrorOrAux, AuxData::iArg, AuxData::iOp, sqlite3_context::iOp, sqlite3_context::isError, AuxData::pAux, Vdbe::pAuxData, AuxData::pNext, sqlite3_context::pVdbe, and AuxData::xDelete.

69753  {
69754  AuxData *pAuxData;
69755  Vdbe *pVdbe = pCtx->pVdbe;
69756 
69757  assert( sqlite3_mutex_held(pCtx->pOut->db->mutex) );
69758  if( iArg<0 ) goto failed;
69759 #ifdef SQLITE_ENABLE_STAT3_OR_STAT4
69760  if( pVdbe==0 ) goto failed;
69761 #else
69762  assert( pVdbe!=0 );
69763 #endif
69764 
69765  for(pAuxData=pVdbe->pAuxData; pAuxData; pAuxData=pAuxData->pNext){
69766  if( pAuxData->iOp==pCtx->iOp && pAuxData->iArg==iArg ) break;
69767  }
69768  if( pAuxData==0 ){
69769  pAuxData = sqlite3DbMallocZero(pVdbe->db, sizeof(AuxData));
69770  if( !pAuxData ) goto failed;
69771  pAuxData->iOp = pCtx->iOp;
69772  pAuxData->iArg = iArg;
69773  pAuxData->pNext = pVdbe->pAuxData;
69774  pVdbe->pAuxData = pAuxData;
69775  if( pCtx->fErrorOrAux==0 ){
69776  pCtx->isError = 0;
69777  pCtx->fErrorOrAux = 1;
69778  }
69779  }else if( pAuxData->xDelete ){
69780  pAuxData->xDelete(pAuxData->pAux);
69781  }
69782 
69783  pAuxData->pAux = pAux;
69784  pAuxData->xDelete = xDelete;
69785  return;
69786 
69787 failed:
69788  if( xDelete ){
69789  xDelete(pAux);
69790  }
69791 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
void(* xDelete)(void *)
Definition: sqlite3.c:14754
void * pAux
Definition: sqlite3.c:14753
int iArg
Definition: sqlite3.c:14752
int iOp
Definition: sqlite3.c:14751
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
sqlite3 * db
Definition: sqlite3.c:14817
AuxData * pAuxData
Definition: sqlite3.c:14874
AuxData * pNext
Definition: sqlite3.c:14755
SQLITE_PRIVATE void * sqlite3DbMallocZero(sqlite3 *, u64)
Definition: sqlite3.c:21149
sqlite3 * db
Definition: sqlite3.c:14680
SQLITE_API int SQLITE_STDCALL sqlite3_shutdown ( void  )

Definition at line 128272 of file sqlite3.c.

References Sqlite3Config::isInit, Sqlite3Config::isMallocInit, Sqlite3Config::isMutexInit, Sqlite3Config::isPCacheInit, sqlite3_data_directory, sqlite3_os_end(), sqlite3_reset_auto_extension(), sqlite3_temp_directory, sqlite3MallocEnd(), sqlite3MutexEnd(), and sqlite3PcacheShutdown().

128272  {
128273 #ifdef SQLITE_OMIT_WSD
128274  int rc = sqlite3_wsd_init(4096, 24);
128275  if( rc!=SQLITE_OK ){
128276  return rc;
128277  }
128278 #endif
128279 
128280  if( sqlite3GlobalConfig.isInit ){
128281 #ifdef SQLITE_EXTRA_SHUTDOWN
128282  void SQLITE_EXTRA_SHUTDOWN(void);
128283  SQLITE_EXTRA_SHUTDOWN();
128284 #endif
128285  sqlite3_os_end();
128287  sqlite3GlobalConfig.isInit = 0;
128288  }
128289  if( sqlite3GlobalConfig.isPCacheInit ){
128291  sqlite3GlobalConfig.isPCacheInit = 0;
128292  }
128293  if( sqlite3GlobalConfig.isMallocInit ){
128294  sqlite3MallocEnd();
128295  sqlite3GlobalConfig.isMallocInit = 0;
128296 
128297 #ifndef SQLITE_OMIT_SHUTDOWN_DIRECTORIES
128298  /* The heap subsystem has now been shutdown and these values are supposed
128299  ** to be NULL or point to memory that was obtained from sqlite3_malloc(),
128300  ** which would rely on that heap subsystem; therefore, make sure these
128301  ** values cannot refer to heap memory that was just invalidated when the
128302  ** heap subsystem was shutdown. This is only done if the current call to
128303  ** this function resulted in the heap subsystem actually being shutdown.
128304  */
128307 #endif
128308  }
128309  if( sqlite3GlobalConfig.isMutexInit ){
128310  sqlite3MutexEnd();
128311  sqlite3GlobalConfig.isMutexInit = 0;
128312  }
128313 
128314  return SQLITE_OK;
128315 }
SQLITE_API char * sqlite3_temp_directory
Definition: sqlite3.c:5111
SQLITE_API void SQLITE_STDCALL sqlite3_reset_auto_extension(void)
Definition: sqlite3.c:103079
SQLITE_PRIVATE void sqlite3PcacheShutdown(void)
Definition: sqlite3.c:39435
#define sqlite3GlobalConfig
Definition: sqlite3.c:9238
SQLITE_API int SQLITE_STDCALL sqlite3_os_end(void)
Definition: sqlite3.c:33028
SQLITE_API char * sqlite3_data_directory
Definition: sqlite3.c:5148
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE int sqlite3MutexEnd(void)
Definition: sqlite3.c:19169
SQLITE_PRIVATE void sqlite3MallocEnd(void)
Definition: sqlite3.c:20740

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_sleep ( int  ms)

Definition at line 131267 of file sqlite3.c.

References sqlite3_vfs_find(), and sqlite3OsSleep().

131267  {
131268  sqlite3_vfs *pVfs;
131269  int rc;
131270  pVfs = sqlite3_vfs_find(0);
131271  if( pVfs==0 ) return 0;
131272 
131273  /* This function works in milliseconds, but the underlying OsSleep()
131274  ** API uses microseconds. Hence the 1000's.
131275  */
131276  rc = (sqlite3OsSleep(pVfs, 1000*ms)/1000);
131277  return rc;
131278 }
SQLITE_API sqlite3_vfs *SQLITE_STDCALL sqlite3_vfs_find(const char *zVfsName)
Definition: sqlite3.c:16775
SQLITE_PRIVATE int sqlite3OsSleep(sqlite3_vfs *, int)
Definition: sqlite3.c:16703

Here is the call graph for this function:

SQLITE_API char *SQLITE_CDECL sqlite3_snprintf ( int  n,
char *  zBuf,
const char *  zFormat,
  ... 
)

Definition at line 22371 of file sqlite3.c.

Referenced by sqlite3VdbeList(), and sqlite3VdbeMemStringify().

22371  {
22372  char *z;
22373  va_list ap;
22374  va_start(ap,zFormat);
22375  z = sqlite3_vsnprintf(n, zBuf, zFormat, ap);
22376  va_end(ap);
22377  return z;
22378 }
SQLITE_API char *SQLITE_STDCALL sqlite3_vsnprintf(int, char *, const char *, va_list)
Definition: sqlite3.c:22356
SQLITE_API void SQLITE_STDCALL sqlite3_soft_heap_limit ( int  N)

Definition at line 20678 of file sqlite3.c.

References sqlite3_soft_heap_limit64().

20678  {
20679  if( n<0 ) n = 0;
20681 }
SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_soft_heap_limit64(sqlite3_int64 N)
Definition: sqlite3.c:20658

Here is the call graph for this function:

SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_soft_heap_limit64 ( sqlite3_int64  N)

Definition at line 20658 of file sqlite3.c.

References sqlite3_initialize(), sqlite3_memory_used(), sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3_release_memory().

Referenced by sqlite3_soft_heap_limit(), and sqlite3Pragma().

20658  {
20659  sqlite3_int64 priorLimit;
20660  sqlite3_int64 excess;
20661 #ifndef SQLITE_OMIT_AUTOINIT
20662  int rc = sqlite3_initialize();
20663  if( rc ) return -1;
20664 #endif
20665  sqlite3_mutex_enter(mem0.mutex);
20666  priorLimit = mem0.alarmThreshold;
20667  sqlite3_mutex_leave(mem0.mutex);
20668  if( n<0 ) return priorLimit;
20669  if( n>0 ){
20670  sqlite3MemoryAlarm(softHeapLimitEnforcer, 0, n);
20671  }else{
20672  sqlite3MemoryAlarm(0, 0, 0);
20673  }
20674  excess = sqlite3_memory_used() - n;
20675  if( excess>0 ) sqlite3_release_memory((int)(excess & 0x7fffffff));
20676  return priorLimit;
20677 }
SQLITE_API int SQLITE_STDCALL sqlite3_release_memory(int)
Definition: sqlite3.c:20545
SQLITE_API int SQLITE_STDCALL sqlite3_initialize(void)
Definition: sqlite3.c:128111
SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_memory_used(void)
Definition: sqlite3.c:20750
sqlite_int64 sqlite3_int64
Definition: sqlite3.c:467
#define mem0
Definition: sqlite3.c:20598
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API const char *SQLITE_STDCALL sqlite3_sourceid ( void  )

Definition at line 128039 of file sqlite3.c.

Referenced by sqlite3CantopenError(), sqlite3CorruptError(), and sqlite3MisuseError().

128039 { return SQLITE_SOURCE_ID; }
#define SQLITE_SOURCE_ID
Definition: sqlite3.c:323
SQLITE_API const char *SQLITE_STDCALL sqlite3_sql ( sqlite3_stmt pStmt)

Definition at line 64871 of file sqlite3.c.

References Vdbe::isPrepareV2, and Vdbe::zSql.

Referenced by sqlite3Reprepare().

64871  {
64872  Vdbe *p = (Vdbe *)pStmt;
64873  return (p && p->isPrepareV2) ? p->zSql : 0;
64874 }
bft isPrepareV2
Definition: sqlite3.c:14851
char * zSql
Definition: sqlite3.c:14865
SQLITE_API int SQLITE_STDCALL sqlite3_status ( int  op,
int *  pCurrent,
int *  pHighwater,
int  resetFlag 
)

Definition at line 15134 of file sqlite3.c.

References sqlite3_status64().

Referenced by sqlite3_memory_highwater(), and sqlite3_memory_used().

15134  {
15135  sqlite3_int64 iCur, iHwtr;
15136  int rc;
15137 #ifdef SQLITE_ENABLE_API_ARMOR
15138  if( pCurrent==0 || pHighwater==0 ) return SQLITE_MISUSE_BKPT;
15139 #endif
15140  rc = sqlite3_status64(op, &iCur, &iHwtr, resetFlag);
15141  if( rc==0 ){
15142  *pCurrent = (int)iCur;
15143  *pHighwater = (int)iHwtr;
15144  }
15145  return rc;
15146 }
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
sqlite_int64 sqlite3_int64
Definition: sqlite3.c:467
SQLITE_API int SQLITE_STDCALL sqlite3_status64(int op, sqlite3_int64 *pCurrent, sqlite3_int64 *pHighwater, int resetFlag)
Definition: sqlite3.c:15109

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_status64 ( int  op,
sqlite3_int64 pCurrent,
sqlite3_int64 pHighwater,
int  resetFlag 
)

Definition at line 15109 of file sqlite3.c.

References sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3MallocMutex(), and sqlite3Pcache1Mutex().

Referenced by sqlite3_status().

15114  {
15115  sqlite3_mutex *pMutex;
15116  wsdStatInit;
15117  if( op<0 || op>=ArraySize(wsdStat.nowValue) ){
15118  return SQLITE_MISUSE_BKPT;
15119  }
15120 #ifdef SQLITE_ENABLE_API_ARMOR
15121  if( pCurrent==0 || pHighwater==0 ) return SQLITE_MISUSE_BKPT;
15122 #endif
15123  pMutex = statMutex[op] ? sqlite3Pcache1Mutex() : sqlite3MallocMutex();
15124  sqlite3_mutex_enter(pMutex);
15125  *pCurrent = wsdStat.nowValue[op];
15126  *pHighwater = wsdStat.mxValue[op];
15127  if( resetFlag ){
15128  wsdStat.mxValue[op] = wsdStat.nowValue[op];
15129  }
15130  sqlite3_mutex_leave(pMutex);
15131  (void)pMutex; /* Prevent warning when SQLITE_THREADSAFE=0 */
15132  return SQLITE_OK;
15133 }
SQLITE_PRIVATE sqlite3_mutex * sqlite3Pcache1Mutex(void)
Definition: sqlite3.c:40952
SQLITE_PRIVATE sqlite3_mutex * sqlite3MallocMutex(void)
Definition: sqlite3.c:20603
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
#define ArraySize(X)
Definition: sqlite3.c:9198
#define SQLITE_OK
Definition: sqlite3.c:611
#define wsdStatInit
Definition: sqlite3.c:15041
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214
#define wsdStat
Definition: sqlite3.c:15042

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_step ( sqlite3_stmt pStmt)

Definition at line 69570 of file sqlite3.c.

References Vdbe::db, Vdbe::doingRerun, sqlite3::mallocFailed, sqlite3::mutex, Vdbe::pc, sqlite3::pErr, Vdbe::rc, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3_reset(), sqlite3_value_text(), sqlite3ApiExit(), sqlite3DbFree(), sqlite3DbStrDup(), sqlite3Reprepare(), and Vdbe::zErrMsg.

Referenced by sqlite3_exec().

69570  {
69571  int rc = SQLITE_OK; /* Result from sqlite3Step() */
69572  int rc2 = SQLITE_OK; /* Result from sqlite3Reprepare() */
69573  Vdbe *v = (Vdbe*)pStmt; /* the prepared statement */
69574  int cnt = 0; /* Counter to prevent infinite loop of reprepares */
69575  sqlite3 *db; /* The database connection */
69576 
69577  if( vdbeSafetyNotNull(v) ){
69578  return SQLITE_MISUSE_BKPT;
69579  }
69580  db = v->db;
69582  v->doingRerun = 0;
69583  while( (rc = sqlite3Step(v))==SQLITE_SCHEMA
69584  && cnt++ < SQLITE_MAX_SCHEMA_RETRY ){
69585  int savedPc = v->pc;
69586  rc2 = rc = sqlite3Reprepare(v);
69587  if( rc!=SQLITE_OK) break;
69588  sqlite3_reset(pStmt);
69589  if( savedPc>=0 ) v->doingRerun = 1;
69590  assert( v->expired==0 );
69591  }
69592  if( rc2!=SQLITE_OK ){
69593  /* This case occurs after failing to recompile an sql statement.
69594  ** The error message from the SQL compiler has already been loaded
69595  ** into the database handle. This block copies the error message
69596  ** from the database handle into the statement and sets the statement
69597  ** program counter to 0 to ensure that when the statement is
69598  ** finalized or reset the parser error message is available via
69599  ** sqlite3_errmsg() and sqlite3_errcode().
69600  */
69601  const char *zErr = (const char *)sqlite3_value_text(db->pErr);
69602  sqlite3DbFree(db, v->zErrMsg);
69603  if( !db->mallocFailed ){
69604  v->zErrMsg = sqlite3DbStrDup(db, zErr);
69605  v->rc = rc2;
69606  } else {
69607  v->zErrMsg = 0;
69608  v->rc = rc = SQLITE_NOMEM;
69609  }
69610  }
69611  rc = sqlite3ApiExit(db, rc);
69613  return rc;
69614 }
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
#define SQLITE_NOMEM
Definition: sqlite3.c:619
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_SCHEMA
Definition: sqlite3.c:629
sqlite3_value * pErr
Definition: sqlite3.c:11051
#define SQLITE_MAX_SCHEMA_RETRY
Definition: sqlite3.c:14525
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
int rc
Definition: sqlite3.c:14837
bft doingRerun
Definition: sqlite3.c:14852
SQLITE_PRIVATE char * sqlite3DbStrDup(sqlite3 *, const char *)
Definition: sqlite3.c:21271
SQLITE_API const unsigned char *SQLITE_STDCALL sqlite3_value_text(sqlite3_value *)
Definition: sqlite3.c:69165
sqlite3 * db
Definition: sqlite3.c:14817
SQLITE_API int SQLITE_STDCALL sqlite3_reset(sqlite3_stmt *pStmt)
Definition: sqlite3.c:69097
SQLITE_PRIVATE int sqlite3Reprepare(Vdbe *)
Definition: sqlite3.c:106324
char * zErrMsg
Definition: sqlite3.c:14828
u8 mallocFailed
Definition: sqlite3.c:11008
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
bft expired
Definition: sqlite3.c:14846
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
int pc
Definition: sqlite3.c:14836
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_stmt_busy ( sqlite3_stmt pStmt)

Definition at line 70471 of file sqlite3.c.

References Vdbe::magic, and Vdbe::pc.

70471  {
70472  Vdbe *v = (Vdbe*)pStmt;
70473  return v!=0 && v->pc>=0 && v->magic==VDBE_MAGIC_RUN;
70474 }
#define VDBE_MAGIC_RUN
Definition: sqlite3.c:14886
u32 magic
Definition: sqlite3.c:14827
int pc
Definition: sqlite3.c:14836
SQLITE_API int SQLITE_STDCALL sqlite3_stmt_readonly ( sqlite3_stmt pStmt)

Definition at line 70464 of file sqlite3.c.

References Vdbe::readOnly.

70464  {
70465  return pStmt ? ((Vdbe*)pStmt)->readOnly : 1;
70466 }
SQLITE_API SQLITE_EXPERIMENTAL int SQLITE_STDCALL sqlite3_stmt_scanstatus ( sqlite3_stmt pStmt,
int  idx,
int  iScanStatusOp,
void *  pOut 
)
SQLITE_API SQLITE_EXPERIMENTAL void SQLITE_STDCALL sqlite3_stmt_scanstatus_reset ( sqlite3_stmt )
SQLITE_API int SQLITE_STDCALL sqlite3_stmt_status ( sqlite3_stmt pStmt,
int  op,
int  resetFlg 
)

Definition at line 70503 of file sqlite3.c.

References Vdbe::aCounter.

70503  {
70504  Vdbe *pVdbe = (Vdbe*)pStmt;
70505  u32 v;
70506 #ifdef SQLITE_ENABLE_API_ARMOR
70507  if( !pStmt ){
70508  (void)SQLITE_MISUSE_BKPT;
70509  return 0;
70510  }
70511 #endif
70512  v = pVdbe->aCounter[op];
70513  if( resetFlag ) pVdbe->aCounter[op] = 0;
70514  return (int)v;
70515 }
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
UINT32_TYPE u32
Definition: sqlite3.c:8956
u32 aCounter[5]
Definition: sqlite3.c:14857
SQLITE_API int SQLITE_STDCALL sqlite3_strglob ( const char *  zGlob,
const char *  zStr 
)

Definition at line 97197 of file sqlite3.c.

97197  {
97198  return patternCompare((u8*)zGlobPattern, (u8*)zString, &globInfo, 0)==0;
97199 }
UINT8_TYPE u8
Definition: sqlite3.c:8959
SQLITE_API int SQLITE_STDCALL sqlite3_stricmp ( const char *  zLeft,
const char *  zRight 
)

Definition at line 23691 of file sqlite3.c.

Referenced by sqlite3_blob_open(), sqlite3_table_column_metadata(), sqlite3AddPrimaryKey(), sqlite3CodeVerifyNamedSchema(), sqlite3CreateForeignKey(), sqlite3CreateIndex(), sqlite3DbNameToBtree(), sqlite3DropTrigger(), sqlite3FindDbName(), sqlite3FindIndex(), sqlite3FindTable(), sqlite3FkCheck(), sqlite3FkLocateIndex(), sqlite3IdListIndex(), sqlite3Insert(), sqlite3IsRowid(), sqlite3MatchSpanName(), sqlite3Pragma(), sqlite3TriggerList(), sqlite3Update(), sqlite3VdbeExec(), and sqlite3WithAdd().

23691  {
23692  register unsigned char *a, *b;
23693  if( zLeft==0 ){
23694  return zRight ? -1 : 0;
23695  }else if( zRight==0 ){
23696  return 1;
23697  }
23698  a = (unsigned char *)zLeft;
23699  b = (unsigned char *)zRight;
23700  while( *a!=0 && UpperToLower[*a]==UpperToLower[*b]){ a++; b++; }
23701  return UpperToLower[*a] - UpperToLower[*b];
23702 }
#define UpperToLower
Definition: sqlite3.c:23679
SQLITE_API int SQLITE_STDCALL sqlite3_strnicmp ( const char *  zLeft,
const char *  zRight,
int  N 
)

Definition at line 23703 of file sqlite3.c.

Referenced by sqlite3_compileoption_used(), sqlite3_complete(), sqlite3BeginTrigger(), sqlite3CheckObjectName(), sqlite3CreateIndex(), sqlite3DropTable(), sqlite3InitCallback(), sqlite3JoinType(), sqlite3MatchSpanName(), and sqlite3Pragma().

23703  {
23704  register unsigned char *a, *b;
23705  if( zLeft==0 ){
23706  return zRight ? -1 : 0;
23707  }else if( zRight==0 ){
23708  return 1;
23709  }
23710  a = (unsigned char *)zLeft;
23711  b = (unsigned char *)zRight;
23712  while( N-- > 0 && *a!=0 && UpperToLower[*a]==UpperToLower[*b]){ a++; b++; }
23713  return N<0 ? 0 : UpperToLower[*a] - UpperToLower[*b];
23714 }
#define UpperToLower
Definition: sqlite3.c:23679
SQLITE_API int SQLITE_STDCALL sqlite3_table_column_metadata ( sqlite3 db,
const char *  zDbName,
const char *  zTableName,
const char *  zColumnName,
char const **  pzDataType,
char const **  pzCollSeq,
int *  pNotNull,
int *  pPrimaryKey,
int *  pAutoinc 
)

Definition at line 131149 of file sqlite3.c.

References Table::aCol, Column::colFlags, Table::iPKey, sqlite3::mutex, Table::nCol, Column::notNull, Table::pSelect, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3_stricmp(), sqlite3ApiExit(), sqlite3BtreeEnterAll(), sqlite3BtreeLeaveAll(), sqlite3DbFree(), sqlite3ErrorWithMsg(), sqlite3FindTable(), sqlite3Init(), sqlite3IsRowid(), sqlite3MPrintf(), Table::tabFlags, Column::zColl, Column::zName, and Column::zType.

131159  {
131160  int rc;
131161  char *zErrMsg = 0;
131162  Table *pTab = 0;
131163  Column *pCol = 0;
131164  int iCol = 0;
131165  char const *zDataType = 0;
131166  char const *zCollSeq = 0;
131167  int notnull = 0;
131168  int primarykey = 0;
131169  int autoinc = 0;
131170 
131171 
131172 #ifdef SQLITE_ENABLE_API_ARMOR
131173  if( !sqlite3SafetyCheckOk(db) || zTableName==0 ){
131174  return SQLITE_MISUSE_BKPT;
131175  }
131176 #endif
131177 
131178  /* Ensure the database schema has been loaded */
131179  sqlite3_mutex_enter(db->mutex);
131180  sqlite3BtreeEnterAll(db);
131181  rc = sqlite3Init(db, &zErrMsg);
131182  if( SQLITE_OK!=rc ){
131183  goto error_out;
131184  }
131185 
131186  /* Locate the table in question */
131187  pTab = sqlite3FindTable(db, zTableName, zDbName);
131188  if( !pTab || pTab->pSelect ){
131189  pTab = 0;
131190  goto error_out;
131191  }
131192 
131193  /* Find the column for which info is requested */
131194  if( zColumnName==0 ){
131195  /* Query for existance of table only */
131196  }else{
131197  for(iCol=0; iCol<pTab->nCol; iCol++){
131198  pCol = &pTab->aCol[iCol];
131199  if( 0==sqlite3StrICmp(pCol->zName, zColumnName) ){
131200  break;
131201  }
131202  }
131203  if( iCol==pTab->nCol ){
131204  if( HasRowid(pTab) && sqlite3IsRowid(zColumnName) ){
131205  iCol = pTab->iPKey;
131206  pCol = iCol>=0 ? &pTab->aCol[iCol] : 0;
131207  }else{
131208  pTab = 0;
131209  goto error_out;
131210  }
131211  }
131212  }
131213 
131214  /* The following block stores the meta information that will be returned
131215  ** to the caller in local variables zDataType, zCollSeq, notnull, primarykey
131216  ** and autoinc. At this point there are two possibilities:
131217  **
131218  ** 1. The specified column name was rowid", "oid" or "_rowid_"
131219  ** and there is no explicitly declared IPK column.
131220  **
131221  ** 2. The table is not a view and the column name identified an
131222  ** explicitly declared column. Copy meta information from *pCol.
131223  */
131224  if( pCol ){
131225  zDataType = pCol->zType;
131226  zCollSeq = pCol->zColl;
131227  notnull = pCol->notNull!=0;
131228  primarykey = (pCol->colFlags & COLFLAG_PRIMKEY)!=0;
131229  autoinc = pTab->iPKey==iCol && (pTab->tabFlags & TF_Autoincrement)!=0;
131230  }else{
131231  zDataType = "INTEGER";
131232  primarykey = 1;
131233  }
131234  if( !zCollSeq ){
131235  zCollSeq = "BINARY";
131236  }
131237 
131238 error_out:
131239  sqlite3BtreeLeaveAll(db);
131240 
131241  /* Whether the function call succeeded or failed, set the output parameters
131242  ** to whatever their local counterparts contain. If an error did occur,
131243  ** this has the effect of zeroing all output parameters.
131244  */
131245  if( pzDataType ) *pzDataType = zDataType;
131246  if( pzCollSeq ) *pzCollSeq = zCollSeq;
131247  if( pNotNull ) *pNotNull = notnull;
131248  if( pPrimaryKey ) *pPrimaryKey = primarykey;
131249  if( pAutoinc ) *pAutoinc = autoinc;
131250 
131251  if( SQLITE_OK==rc && !pTab ){
131252  sqlite3DbFree(db, zErrMsg);
131253  zErrMsg = sqlite3MPrintf(db, "no such table column: %s.%s", zTableName,
131254  zColumnName);
131255  rc = SQLITE_ERROR;
131256  }
131257  sqlite3ErrorWithMsg(db, rc, (zErrMsg?"%s":0), zErrMsg);
131258  sqlite3DbFree(db, zErrMsg);
131259  rc = sqlite3ApiExit(db, rc);
131260  sqlite3_mutex_leave(db->mutex);
131261  return rc;
131262 }
u8 notNull
Definition: sqlite3.c:11347
char * zType
Definition: sqlite3.c:11345
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_PRIVATE Table * sqlite3FindTable(sqlite3 *, const char *, const char *)
Definition: sqlite3.c:91119
char * zColl
Definition: sqlite3.c:11346
Column * aCol
Definition: sqlite3.c:11507
#define TF_Autoincrement
Definition: sqlite3.c:11551
SQLITE_PRIVATE int sqlite3Init(sqlite3 *, char **)
Definition: sqlite3.c:105973
u8 tabFlags
Definition: sqlite3.c:11524
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
#define SQLITE_ERROR
Definition: sqlite3.c:613
SQLITE_PRIVATE int sqlite3IsRowid(const char *)
Definition: sqlite3.c:84327
Select * pSelect
Definition: sqlite3.c:11509
i16 nCol
Definition: sqlite3.c:11518
SQLITE_PRIVATE void sqlite3ErrorWithMsg(sqlite3 *, int, const char *,...)
Definition: sqlite3.c:23583
#define sqlite3StrICmp
Definition: sqlite3.c:12980
i16 iPKey
Definition: sqlite3.c:11517
SQLITE_PRIVATE void sqlite3BtreeLeaveAll(sqlite3 *)
Definition: sqlite3.c:52989
SQLITE_PRIVATE void sqlite3BtreeEnterAll(sqlite3 *)
Definition: sqlite3.c:52980
char * zName
Definition: sqlite3.c:11342
SQLITE_PRIVATE char * sqlite3MPrintf(sqlite3 *, const char *,...)
Definition: sqlite3.c:22275
#define COLFLAG_PRIMKEY
Definition: sqlite3.c:11355
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
#define HasRowid(X)
Definition: sqlite3.c:11571
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214
u8 colFlags
Definition: sqlite3.c:11350

Here is the call graph for this function:

SQLITE_API int SQLITE_CDECL sqlite3_test_control ( int  op,
  ... 
)

Definition at line 131330 of file sqlite3.c.

References sqlite3::aDb, sqlite3::sqlite3InitInfo::busy, Sqlite3Config::isInit, sqlite3::mutex, sqlite3::sqlite3InitInfo::newTnum, Db::pBt, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3_randomness(), sqlite3BenignMallocHooks(), sqlite3BitvecBuiltinTest(), sqlite3BtreeSetPageSize(), sqlite3FaultSim(), sqlite3KeywordCode(), sqlite3PendingByte, sqlite3PrngRestoreState(), sqlite3PrngSaveState(), sqlite3ResetAllSchemasOfConnection(), sqlite3ScratchFree(), sqlite3ScratchMalloc(), and sqlite3Strlen30().

131330  {
131331  int rc = 0;
131332 #ifndef SQLITE_OMIT_BUILTIN_TEST
131333  va_list ap;
131334  va_start(ap, op);
131335  switch( op ){
131336 
131337  /*
131338  ** Save the current state of the PRNG.
131339  */
131340  case SQLITE_TESTCTRL_PRNG_SAVE: {
131342  break;
131343  }
131344 
131345  /*
131346  ** Restore the state of the PRNG to the last state saved using
131347  ** PRNG_SAVE. If PRNG_SAVE has never before been called, then
131348  ** this verb acts like PRNG_RESET.
131349  */
131352  break;
131353  }
131354 
131355  /*
131356  ** Reset the PRNG back to its uninitialized state. The next call
131357  ** to sqlite3_randomness() will reseed the PRNG using a single call
131358  ** to the xRandomness method of the default VFS.
131359  */
131361  sqlite3_randomness(0,0);
131362  break;
131363  }
131364 
131365  /*
131366  ** sqlite3_test_control(BITVEC_TEST, size, program)
131367  **
131368  ** Run a test against a Bitvec object of size. The program argument
131369  ** is an array of integers that defines the test. Return -1 on a
131370  ** memory allocation error, 0 on success, or non-zero for an error.
131371  ** See the sqlite3BitvecBuiltinTest() for additional information.
131372  */
131374  int sz = va_arg(ap, int);
131375  int *aProg = va_arg(ap, int*);
131376  rc = sqlite3BitvecBuiltinTest(sz, aProg);
131377  break;
131378  }
131379 
131380  /*
131381  ** sqlite3_test_control(FAULT_INSTALL, xCallback)
131382  **
131383  ** Arrange to invoke xCallback() whenever sqlite3FaultSim() is called,
131384  ** if xCallback is not NULL.
131385  **
131386  ** As a test of the fault simulator mechanism itself, sqlite3FaultSim(0)
131387  ** is called immediately after installing the new callback and the return
131388  ** value from sqlite3FaultSim(0) becomes the return from
131389  ** sqlite3_test_control().
131390  */
131392  /* MSVC is picky about pulling func ptrs from va lists.
131393  ** http://support.microsoft.com/kb/47961
131394  ** sqlite3GlobalConfig.xTestCallback = va_arg(ap, int(*)(int));
131395  */
131396  typedef int(*TESTCALLBACKFUNC_t)(int);
131397  sqlite3GlobalConfig.xTestCallback = va_arg(ap, TESTCALLBACKFUNC_t);
131398  rc = sqlite3FaultSim(0);
131399  break;
131400  }
131401 
131402  /*
131403  ** sqlite3_test_control(BENIGN_MALLOC_HOOKS, xBegin, xEnd)
131404  **
131405  ** Register hooks to call to indicate which malloc() failures
131406  ** are benign.
131407  */
131409  typedef void (*void_function)(void);
131410  void_function xBenignBegin;
131411  void_function xBenignEnd;
131412  xBenignBegin = va_arg(ap, void_function);
131413  xBenignEnd = va_arg(ap, void_function);
131414  sqlite3BenignMallocHooks(xBenignBegin, xBenignEnd);
131415  break;
131416  }
131417 
131418  /*
131419  ** sqlite3_test_control(SQLITE_TESTCTRL_PENDING_BYTE, unsigned int X)
131420  **
131421  ** Set the PENDING byte to the value in the argument, if X>0.
131422  ** Make no changes if X==0. Return the value of the pending byte
131423  ** as it existing before this routine was called.
131424  **
131425  ** IMPORTANT: Changing the PENDING byte from 0x40000000 results in
131426  ** an incompatible database file format. Changing the PENDING byte
131427  ** while any database connection is open results in undefined and
131428  ** deleterious behavior.
131429  */
131431  rc = PENDING_BYTE;
131432 #ifndef SQLITE_OMIT_WSD
131433  {
131434  unsigned int newVal = va_arg(ap, unsigned int);
131435  if( newVal ) sqlite3PendingByte = newVal;
131436  }
131437 #endif
131438  break;
131439  }
131440 
131441  /*
131442  ** sqlite3_test_control(SQLITE_TESTCTRL_ASSERT, int X)
131443  **
131444  ** This action provides a run-time test to see whether or not
131445  ** assert() was enabled at compile-time. If X is true and assert()
131446  ** is enabled, then the return value is true. If X is true and
131447  ** assert() is disabled, then the return value is zero. If X is
131448  ** false and assert() is enabled, then the assertion fires and the
131449  ** process aborts. If X is false and assert() is disabled, then the
131450  ** return value is zero.
131451  */
131452  case SQLITE_TESTCTRL_ASSERT: {
131453  volatile int x = 0;
131454  assert( (x = va_arg(ap,int))!=0 );
131455  rc = x;
131456  break;
131457  }
131458 
131459 
131460  /*
131461  ** sqlite3_test_control(SQLITE_TESTCTRL_ALWAYS, int X)
131462  **
131463  ** This action provides a run-time test to see how the ALWAYS and
131464  ** NEVER macros were defined at compile-time.
131465  **
131466  ** The return value is ALWAYS(X).
131467  **
131468  ** The recommended test is X==2. If the return value is 2, that means
131469  ** ALWAYS() and NEVER() are both no-op pass-through macros, which is the
131470  ** default setting. If the return value is 1, then ALWAYS() is either
131471  ** hard-coded to true or else it asserts if its argument is false.
131472  ** The first behavior (hard-coded to true) is the case if
131473  ** SQLITE_TESTCTRL_ASSERT shows that assert() is disabled and the second
131474  ** behavior (assert if the argument to ALWAYS() is false) is the case if
131475  ** SQLITE_TESTCTRL_ASSERT shows that assert() is enabled.
131476  **
131477  ** The run-time test procedure might look something like this:
131478  **
131479  ** if( sqlite3_test_control(SQLITE_TESTCTRL_ALWAYS, 2)==2 ){
131480  ** // ALWAYS() and NEVER() are no-op pass-through macros
131481  ** }else if( sqlite3_test_control(SQLITE_TESTCTRL_ASSERT, 1) ){
131482  ** // ALWAYS(x) asserts that x is true. NEVER(x) asserts x is false.
131483  ** }else{
131484  ** // ALWAYS(x) is a constant 1. NEVER(x) is a constant 0.
131485  ** }
131486  */
131487  case SQLITE_TESTCTRL_ALWAYS: {
131488  int x = va_arg(ap,int);
131489  rc = ALWAYS(x);
131490  break;
131491  }
131492 
131493  /*
131494  ** sqlite3_test_control(SQLITE_TESTCTRL_BYTEORDER);
131495  **
131496  ** The integer returned reveals the byte-order of the computer on which
131497  ** SQLite is running:
131498  **
131499  ** 1 big-endian, determined at run-time
131500  ** 10 little-endian, determined at run-time
131501  ** 432101 big-endian, determined at compile-time
131502  ** 123410 little-endian, determined at compile-time
131503  */
131504  case SQLITE_TESTCTRL_BYTEORDER: {
131506  break;
131507  }
131508 
131509  /* sqlite3_test_control(SQLITE_TESTCTRL_RESERVE, sqlite3 *db, int N)
131510  **
131511  ** Set the nReserve size to N for the main database on the database
131512  ** connection db.
131513  */
131514  case SQLITE_TESTCTRL_RESERVE: {
131515  sqlite3 *db = va_arg(ap, sqlite3*);
131516  int x = va_arg(ap,int);
131517  sqlite3_mutex_enter(db->mutex);
131518  sqlite3BtreeSetPageSize(db->aDb[0].pBt, 0, x, 0);
131519  sqlite3_mutex_leave(db->mutex);
131520  break;
131521  }
131522 
131523  /* sqlite3_test_control(SQLITE_TESTCTRL_OPTIMIZATIONS, sqlite3 *db, int N)
131524  **
131525  ** Enable or disable various optimizations for testing purposes. The
131526  ** argument N is a bitmask of optimizations to be disabled. For normal
131527  ** operation N should be 0. The idea is that a test program (like the
131528  ** SQL Logic Test or SLT test module) can run the same SQL multiple times
131529  ** with various optimizations disabled to verify that the same answer
131530  ** is obtained in every case.
131531  */
131533  sqlite3 *db = va_arg(ap, sqlite3*);
131534  db->dbOptFlags = (u16)(va_arg(ap, int) & 0xffff);
131535  break;
131536  }
131537 
131538 #ifdef SQLITE_N_KEYWORD
131539  /* sqlite3_test_control(SQLITE_TESTCTRL_ISKEYWORD, const char *zWord)
131540  **
131541  ** If zWord is a keyword recognized by the parser, then return the
131542  ** number of keywords. Or if zWord is not a keyword, return 0.
131543  **
131544  ** This test feature is only available in the amalgamation since
131545  ** the SQLITE_N_KEYWORD macro is not defined in this file if SQLite
131546  ** is built using separate source files.
131547  */
131548  case SQLITE_TESTCTRL_ISKEYWORD: {
131549  const char *zWord = va_arg(ap, const char*);
131550  int n = sqlite3Strlen30(zWord);
131551  rc = (sqlite3KeywordCode((u8*)zWord, n)!=TK_ID) ? SQLITE_N_KEYWORD : 0;
131552  break;
131553  }
131554 #endif
131555 
131556  /* sqlite3_test_control(SQLITE_TESTCTRL_SCRATCHMALLOC, sz, &pNew, pFree);
131557  **
131558  ** Pass pFree into sqlite3ScratchFree().
131559  ** If sz>0 then allocate a scratch buffer into pNew.
131560  */
131562  void *pFree, **ppNew;
131563  int sz;
131564  sz = va_arg(ap, int);
131565  ppNew = va_arg(ap, void**);
131566  pFree = va_arg(ap, void*);
131567  if( sz ) *ppNew = sqlite3ScratchMalloc(sz);
131568  sqlite3ScratchFree(pFree);
131569  break;
131570  }
131571 
131572  /* sqlite3_test_control(SQLITE_TESTCTRL_LOCALTIME_FAULT, int onoff);
131573  **
131574  ** If parameter onoff is non-zero, configure the wrappers so that all
131575  ** subsequent calls to localtime() and variants fail. If onoff is zero,
131576  ** undo this setting.
131577  */
131579  sqlite3GlobalConfig.bLocaltimeFault = va_arg(ap, int);
131580  break;
131581  }
131582 
131583  /* sqlite3_test_control(SQLITE_TESTCTRL_NEVER_CORRUPT, int);
131584  **
131585  ** Set or clear a flag that indicates that the database file is always well-
131586  ** formed and never corrupt. This flag is clear by default, indicating that
131587  ** database files might have arbitrary corruption. Setting the flag during
131588  ** testing causes certain assert() statements in the code to be activated
131589  ** that demonstrat invariants on well-formed database files.
131590  */
131592  sqlite3GlobalConfig.neverCorrupt = va_arg(ap, int);
131593  break;
131594  }
131595 
131596 
131597  /* sqlite3_test_control(SQLITE_TESTCTRL_VDBE_COVERAGE, xCallback, ptr);
131598  **
131599  ** Set the VDBE coverage callback function to xCallback with context
131600  ** pointer ptr.
131601  */
131603 #ifdef SQLITE_VDBE_COVERAGE
131604  typedef void (*branch_callback)(void*,int,u8,u8);
131605  sqlite3GlobalConfig.xVdbeBranch = va_arg(ap,branch_callback);
131606  sqlite3GlobalConfig.pVdbeBranchArg = va_arg(ap,void*);
131607 #endif
131608  break;
131609  }
131610 
131611  /* sqlite3_test_control(SQLITE_TESTCTRL_SORTER_MMAP, db, nMax); */
131613  sqlite3 *db = va_arg(ap, sqlite3*);
131614  db->nMaxSorterMmap = va_arg(ap, int);
131615  break;
131616  }
131617 
131618  /* sqlite3_test_control(SQLITE_TESTCTRL_ISINIT);
131619  **
131620  ** Return SQLITE_OK if SQLite has been initialized and SQLITE_ERROR if
131621  ** not.
131622  */
131623  case SQLITE_TESTCTRL_ISINIT: {
131624  if( sqlite3GlobalConfig.isInit==0 ) rc = SQLITE_ERROR;
131625  break;
131626  }
131627 
131628  /* sqlite3_test_control(SQLITE_TESTCTRL_IMPOSTER, db, dbName, onOff, tnum);
131629  **
131630  ** This test control is used to create imposter tables. "db" is a pointer
131631  ** to the database connection. dbName is the database name (ex: "main" or
131632  ** "temp") which will receive the imposter. "onOff" turns imposter mode on
131633  ** or off. "tnum" is the root page of the b-tree to which the imposter
131634  ** table should connect.
131635  **
131636  ** Enable imposter mode only when the schema has already been parsed. Then
131637  ** run a single CREATE TABLE statement to construct the imposter table in
131638  ** the parsed schema. Then turn imposter mode back off again.
131639  **
131640  ** If onOff==0 and tnum>0 then reset the schema for all databases, causing
131641  ** the schema to be reparsed the next time it is needed. This has the
131642  ** effect of erasing all imposter tables.
131643  */
131644  case SQLITE_TESTCTRL_IMPOSTER: {
131645  sqlite3 *db = va_arg(ap, sqlite3*);
131646  sqlite3_mutex_enter(db->mutex);
131647  db->init.iDb = sqlite3FindDbName(db, va_arg(ap,const char*));
131648  db->init.busy = db->init.imposterTable = va_arg(ap,int);
131649  db->init.newTnum = va_arg(ap,int);
131650  if( db->init.busy==0 && db->init.newTnum>0 ){
131652  }
131653  sqlite3_mutex_leave(db->mutex);
131654  break;
131655  }
131656  }
131657  va_end(ap);
131658 #endif /* SQLITE_OMIT_BUILTIN_TEST */
131659  return rc;
131660 }
SQLITE_PRIVATE int sqlite3BtreeSetPageSize(Btree *p, int nPagesize, int nReserve, int eFix)
Definition: sqlite3.c:55495
SQLITE_PRIVATE void sqlite3ResetAllSchemasOfConnection(sqlite3 *)
Definition: sqlite3.c:91347
#define SQLITE_BIGENDIAN
Definition: sqlite3.c:9053
SQLITE_PRIVATE int sqlite3BitvecBuiltinTest(int, int *)
Definition: sqlite3.c:39210
SQLITE_PRIVATE int sqlite3FaultSim(int)
Definition: sqlite3.c:23485
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_TESTCTRL_ISKEYWORD
Definition: sqlite3.c:6569
SQLITE_PRIVATE int sqlite3PendingByte
Definition: sqlite3.c:14041
#define SQLITE_LITTLEENDIAN
Definition: sqlite3.c:9054
SQLITE_PRIVATE void sqlite3ScratchFree(void *)
Definition: sqlite3.c:20923
SQLITE_PRIVATE void sqlite3PrngRestoreState(void)
Definition: sqlite3.c:22633
UINT8_TYPE u8
Definition: sqlite3.c:8959
#define SQLITE_TESTCTRL_ASSERT
Definition: sqlite3.c:6565
struct sqlite3::sqlite3InitInfo init
#define SQLITE_TESTCTRL_VDBE_COVERAGE
Definition: sqlite3.c:6574
#define sqlite3GlobalConfig
Definition: sqlite3.c:9238
#define SQLITE_TESTCTRL_RESERVE
Definition: sqlite3.c:6567
#define ALWAYS(X)
Definition: sqlite3.c:8508
#define TK_ID
Definition: sqlite3.c:8658
#define SQLITE_TESTCTRL_ISINIT
Definition: sqlite3.c:6576
#define SQLITE_ERROR
Definition: sqlite3.c:613
SQLITE_PRIVATE int sqlite3KeywordCode(const unsigned char *, int)
Definition: sqlite3.c:127150
#define SQLITE_TESTCTRL_PRNG_SAVE
Definition: sqlite3.c:6558
#define SQLITE_BYTEORDER
Definition: sqlite3.c:9052
#define SQLITE_TESTCTRL_PRNG_RESTORE
Definition: sqlite3.c:6559
SQLITE_PRIVATE int sqlite3FindDbName(sqlite3 *, const char *)
Definition: sqlite3.c:91518
#define SQLITE_TESTCTRL_BYTEORDER
Definition: sqlite3.c:6575
#define SQLITE_TESTCTRL_SCRATCHMALLOC
Definition: sqlite3.c:6570
u16 dbOptFlags
Definition: sqlite3.c:11004
int nMaxSorterMmap
Definition: sqlite3.c:11019
#define SQLITE_TESTCTRL_LOCALTIME_FAULT
Definition: sqlite3.c:6571
#define SQLITE_TESTCTRL_SORTER_MMAP
Definition: sqlite3.c:6577
#define SQLITE_TESTCTRL_BITVEC_TEST
Definition: sqlite3.c:6561
Btree * pBt
Definition: sqlite3.c:10839
SQLITE_API void SQLITE_STDCALL sqlite3_randomness(int N, void *P)
Definition: sqlite3.c:22539
#define SQLITE_TESTCTRL_NEVER_CORRUPT
Definition: sqlite3.c:6573
#define SQLITE_TESTCTRL_BENIGN_MALLOC_HOOKS
Definition: sqlite3.c:6563
#define SQLITE_TESTCTRL_PENDING_BYTE
Definition: sqlite3.c:6564
SQLITE_PRIVATE void * sqlite3ScratchMalloc(int)
Definition: sqlite3.c:20886
SQLITE_PRIVATE int sqlite3Strlen30(const char *)
Definition: sqlite3.c:23546
Db * aDb
Definition: sqlite3.c:10996
SQLITE_PRIVATE void sqlite3PrngSaveState(void)
Definition: sqlite3.c:22626
#define SQLITE_N_KEYWORD
Definition: sqlite3.c:127153
#define PENDING_BYTE
Definition: sqlite3.c:10689
#define SQLITE_TESTCTRL_ALWAYS
Definition: sqlite3.c:6566
#define SQLITE_TESTCTRL_PRNG_RESET
Definition: sqlite3.c:6560
#define SQLITE_TESTCTRL_OPTIMIZATIONS
Definition: sqlite3.c:6568
SQLITE_PRIVATE void sqlite3BenignMallocHooks(void(*)(void), void(*)(void))
Definition: sqlite3.c:16919
#define SQLITE_TESTCTRL_FAULT_INSTALL
Definition: sqlite3.c:6562
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
#define SQLITE_TESTCTRL_IMPOSTER
Definition: sqlite3.c:6578
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214
UINT16_TYPE u16
Definition: sqlite3.c:8957

Here is the call graph for this function:

SQLITE_API void SQLITE_STDCALL sqlite3_thread_cleanup ( void  )

Definition at line 131141 of file sqlite3.c.

131141  {
131142 }
SQLITE_API int SQLITE_STDCALL sqlite3_threadsafe ( void  )

Definition at line 128050 of file sqlite3.c.

128050 { return SQLITE_THREADSAFE; }
#define SQLITE_THREADSAFE
Definition: sqlite3.c:8343
SQLITE_API int SQLITE_STDCALL sqlite3_total_changes ( sqlite3 db)

Definition at line 128865 of file sqlite3.c.

References sqlite3::nTotalChange.

128865  {
128866 #ifdef SQLITE_ENABLE_API_ARMOR
128867  if( !sqlite3SafetyCheckOk(db) ){
128868  (void)SQLITE_MISUSE_BKPT;
128869  return 0;
128870  }
128871 #endif
128872  return db->nTotalChange;
128873 }
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
int nTotalChange
Definition: sqlite3.c:11017
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void *SQLITE_STDCALL sqlite3_trace ( sqlite3 db,
void(*)(void *, const char *)  xTrace,
void *  pArg 
)

Definition at line 129731 of file sqlite3.c.

References sqlite3::mutex, sqlite3::pTraceArg, sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3::xTrace.

129731  {
129732  void *pOld;
129733 
129734 #ifdef SQLITE_ENABLE_API_ARMOR
129735  if( !sqlite3SafetyCheckOk(db) ){
129736  (void)SQLITE_MISUSE_BKPT;
129737  return 0;
129738  }
129739 #endif
129740  sqlite3_mutex_enter(db->mutex);
129741  pOld = db->pTraceArg;
129742  db->xTrace = xTrace;
129743  db->pTraceArg = pArg;
129744  sqlite3_mutex_leave(db->mutex);
129745  return pOld;
129746 }
void * pTraceArg
Definition: sqlite3.c:11035
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
void(* xTrace)(void *, const char *)
Definition: sqlite3.c:11034
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_transfer_bindings ( sqlite3_stmt pFromStmt,
sqlite3_stmt pToStmt 
)

Definition at line 70434 of file sqlite3.c.

References Vdbe::expired, Vdbe::expmask, Vdbe::isPrepareV2, Vdbe::nVar, and sqlite3TransferBindings().

70434  {
70435  Vdbe *pFrom = (Vdbe*)pFromStmt;
70436  Vdbe *pTo = (Vdbe*)pToStmt;
70437  if( pFrom->nVar!=pTo->nVar ){
70438  return SQLITE_ERROR;
70439  }
70440  if( pTo->isPrepareV2 && pTo->expmask ){
70441  pTo->expired = 1;
70442  }
70443  if( pFrom->isPrepareV2 && pFrom->expmask ){
70444  pFrom->expired = 1;
70445  }
70446  return sqlite3TransferBindings(pFromStmt, pToStmt);
70447 }
#define SQLITE_ERROR
Definition: sqlite3.c:613
SQLITE_PRIVATE int sqlite3TransferBindings(sqlite3_stmt *, sqlite3_stmt *)
Definition: sqlite3.c:70407
bft isPrepareV2
Definition: sqlite3.c:14851
u32 expmask
Definition: sqlite3.c:14870
bft expired
Definition: sqlite3.c:14846
ynVar nVar
Definition: sqlite3.c:14833

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_unlock_notify ( sqlite3 pBlocked,
void(*)(void **apArg, int nArg)  xNotify,
void *  pNotifyArg 
)
SQLITE_API void *SQLITE_STDCALL sqlite3_update_hook ( sqlite3 db,
void(*)(void *, int,char const *, char const *, sqlite3_int64 xCallback,
void *  pArg 
)

Definition at line 129807 of file sqlite3.c.

References sqlite3::mutex, sqlite3::pUpdateArg, sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3::xUpdateCallback.

129811  {
129812  void *pRet;
129813 
129814 #ifdef SQLITE_ENABLE_API_ARMOR
129815  if( !sqlite3SafetyCheckOk(db) ){
129816  (void)SQLITE_MISUSE_BKPT;
129817  return 0;
129818  }
129819 #endif
129820  sqlite3_mutex_enter(db->mutex);
129821  pRet = db->pUpdateArg;
129822  db->xUpdateCallback = xCallback;
129823  db->pUpdateArg = pArg;
129824  sqlite3_mutex_leave(db->mutex);
129825  return pRet;
129826 }
void(* xUpdateCallback)(void *, int, const char *, const char *, sqlite_int64)
Definition: sqlite3.c:11043
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
void * pUpdateArg
Definition: sqlite3.c:11042
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_uri_boolean ( const char *  zFile,
const char *  zParam,
int  bDefault 
)

Definition at line 131688 of file sqlite3.c.

References sqlite3_uri_parameter(), and sqlite3GetBoolean().

Referenced by sqlite3PagerOpen().

131688  {
131689  const char *z = sqlite3_uri_parameter(zFilename, zParam);
131690  bDflt = bDflt!=0;
131691  return z ? sqlite3GetBoolean(z, bDflt) : bDflt;
131692 }
SQLITE_API const char *SQLITE_STDCALL sqlite3_uri_parameter(const char *zFilename, const char *zParam)
Definition: sqlite3.c:131673
SQLITE_PRIVATE u8 sqlite3GetBoolean(const char *z, u8)
Definition: sqlite3.c:103665

Here is the call graph for this function:

SQLITE_API sqlite3_int64 SQLITE_STDCALL sqlite3_uri_int64 ( const char *  zFilename,
const char *  zParam,
sqlite3_int64  bDflt 
)

Definition at line 131697 of file sqlite3.c.

References sqlite3_uri_parameter(), and sqlite3DecOrHexToI64().

131701  {
131702  const char *z = sqlite3_uri_parameter(zFilename, zParam);
131703  sqlite3_int64 v;
131704  if( z && sqlite3DecOrHexToI64(z, &v)==SQLITE_OK ){
131705  bDflt = v;
131706  }
131707  return bDflt;
131708 }
sqlite_int64 sqlite3_int64
Definition: sqlite3.c:467
SQLITE_API const char *SQLITE_STDCALL sqlite3_uri_parameter(const char *zFilename, const char *zParam)
Definition: sqlite3.c:131673
SQLITE_PRIVATE int sqlite3DecOrHexToI64(const char *, i64 *)
Definition: sqlite3.c:24037
#define SQLITE_OK
Definition: sqlite3.c:611

Here is the call graph for this function:

SQLITE_API const char *SQLITE_STDCALL sqlite3_uri_parameter ( const char *  zFilename,
const char *  zParam 
)

Definition at line 131673 of file sqlite3.c.

References sqlite3Strlen30().

Referenced by sqlite3_uri_boolean(), and sqlite3_uri_int64().

131673  {
131674  if( zFilename==0 || zParam==0 ) return 0;
131675  zFilename += sqlite3Strlen30(zFilename) + 1;
131676  while( zFilename[0] ){
131677  int x = strcmp(zFilename, zParam);
131678  zFilename += sqlite3Strlen30(zFilename) + 1;
131679  if( x==0 ) return zFilename;
131680  zFilename += sqlite3Strlen30(zFilename) + 1;
131681  }
131682  return 0;
131683 }
SQLITE_PRIVATE int sqlite3Strlen30(const char *)
Definition: sqlite3.c:23546

Here is the call graph for this function:

SQLITE_API void *SQLITE_STDCALL sqlite3_user_data ( sqlite3_context p)

Definition at line 69621 of file sqlite3.c.

References sqlite3_context::pFunc, and FuncDef::pUserData.

69621  {
69622  assert( p && p->pFunc );
69623  return p->pFunc->pUserData;
69624 }
FuncDef * pFunc
Definition: sqlite3.c:14773
void * pUserData
Definition: sqlite3.c:11205
SQLITE_API const void *SQLITE_STDCALL sqlite3_value_blob ( sqlite3_value *  pVal)

Definition at line 69140 of file sqlite3.c.

References sqlite3_value::flags, sqlite3_value::n, sqlite3_value_text(), sqlite3VdbeMemExpandBlob(), and sqlite3_value::z.

Referenced by sqlite3_column_blob().

69140  {
69141  Mem *p = (Mem*)pVal;
69142  if( p->flags & (MEM_Blob|MEM_Str) ){
69144  p->flags |= MEM_Blob;
69145  return p->n ? p->z : 0;
69146  }else{
69147  return sqlite3_value_text(pVal);
69148  }
69149 }
#define MEM_Str
Definition: sqlite3.c:14701
u16 flags
Definition: sqlite3.c:14672
SQLITE_PRIVATE int sqlite3VdbeMemExpandBlob(Mem *)
Definition: sqlite3.c:63334
#define MEM_Blob
Definition: sqlite3.c:14704
SQLITE_API const unsigned char *SQLITE_STDCALL sqlite3_value_text(sqlite3_value *)
Definition: sqlite3.c:69165
int n
Definition: sqlite3.c:14674
Definition: sqlite3.c:14663
char * z
Definition: sqlite3.c:14675

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_value_bytes ( sqlite3_value *  pVal)

Definition at line 69150 of file sqlite3.c.

References sqlite3ValueBytes().

Referenced by sqlite3_column_bytes().

69150  {
69151  return sqlite3ValueBytes(pVal, SQLITE_UTF8);
69152 }
#define SQLITE_UTF8
Definition: sqlite3.c:4463
SQLITE_PRIVATE int sqlite3ValueBytes(sqlite3_value *, u8)
Definition: sqlite3.c:64802

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_value_bytes16 ( sqlite3_value *  pVal)

Definition at line 69153 of file sqlite3.c.

References sqlite3ValueBytes().

Referenced by sqlite3_column_bytes16().

69153  {
69154  return sqlite3ValueBytes(pVal, SQLITE_UTF16NATIVE);
69155 }
#define SQLITE_UTF16NATIVE
Definition: sqlite3.c:9055
SQLITE_PRIVATE int sqlite3ValueBytes(sqlite3_value *, u8)
Definition: sqlite3.c:64802

Here is the call graph for this function:

SQLITE_API double SQLITE_STDCALL sqlite3_value_double ( sqlite3_value *  pVal)

Definition at line 69156 of file sqlite3.c.

References sqlite3VdbeRealValue().

Referenced by sqlite3_column_double().

69156  {
69157  return sqlite3VdbeRealValue((Mem*)pVal);
69158 }
Definition: sqlite3.c:14663
SQLITE_PRIVATE double sqlite3VdbeRealValue(Mem *)
Definition: sqlite3.c:63600

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_value_int ( sqlite3_value *  pVal)

Definition at line 69159 of file sqlite3.c.

References sqlite3VdbeIntValue().

Referenced by sqlite3_column_int().

69159  {
69160  return (int)sqlite3VdbeIntValue((Mem*)pVal);
69161 }
SQLITE_PRIVATE i64 sqlite3VdbeIntValue(Mem *)
Definition: sqlite3.c:63575
Definition: sqlite3.c:14663

Here is the call graph for this function:

SQLITE_API sqlite_int64 SQLITE_STDCALL sqlite3_value_int64 ( sqlite3_value *  pVal)

Definition at line 69162 of file sqlite3.c.

References sqlite3VdbeIntValue().

Referenced by sqlite3_column_int64().

69162  {
69163  return sqlite3VdbeIntValue((Mem*)pVal);
69164 }
SQLITE_PRIVATE i64 sqlite3VdbeIntValue(Mem *)
Definition: sqlite3.c:63575
Definition: sqlite3.c:14663

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_value_numeric_type ( sqlite3_value *  pVal)

Definition at line 71083 of file sqlite3.c.

References sqlite3_value_type().

71083  {
71084  int eType = sqlite3_value_type(pVal);
71085  if( eType==SQLITE_TEXT ){
71086  Mem *pMem = (Mem*)pVal;
71087  applyNumericAffinity(pMem, 0);
71088  eType = sqlite3_value_type(pVal);
71089  }
71090  return eType;
71091 }
SQLITE_API int SQLITE_STDCALL sqlite3_value_type(sqlite3_value *)
Definition: sqlite3.c:69183
#define SQLITE_TEXT
Definition: sqlite3.c:4094
Definition: sqlite3.c:14663

Here is the call graph for this function:

SQLITE_API const unsigned char *SQLITE_STDCALL sqlite3_value_text ( sqlite3_value *  pVal)

Definition at line 69165 of file sqlite3.c.

References sqlite3ValueText().

Referenced by sqlite3_column_text(), sqlite3_errmsg(), sqlite3_step(), sqlite3_value_blob(), and sqlite3VdbeExec().

69165  {
69166  return (const unsigned char *)sqlite3ValueText(pVal, SQLITE_UTF8);
69167 }
#define SQLITE_UTF8
Definition: sqlite3.c:4463
SQLITE_PRIVATE const void * sqlite3ValueText(sqlite3_value *, u8)
Definition: sqlite3.c:64166

Here is the call graph for this function:

SQLITE_API const void *SQLITE_STDCALL sqlite3_value_text16 ( sqlite3_value *  pVal)

Definition at line 69169 of file sqlite3.c.

References sqlite3ValueText().

Referenced by sqlite3_column_decltype16(), sqlite3_column_name16(), sqlite3_column_text16(), and sqlite3_errmsg16().

69169  {
69170  return sqlite3ValueText(pVal, SQLITE_UTF16NATIVE);
69171 }
#define SQLITE_UTF16NATIVE
Definition: sqlite3.c:9055
SQLITE_PRIVATE const void * sqlite3ValueText(sqlite3_value *, u8)
Definition: sqlite3.c:64166

Here is the call graph for this function:

SQLITE_API const void *SQLITE_STDCALL sqlite3_value_text16be ( sqlite3_value *  pVal)

Definition at line 69172 of file sqlite3.c.

References sqlite3ValueText().

69172  {
69173  return sqlite3ValueText(pVal, SQLITE_UTF16BE);
69174 }
#define SQLITE_UTF16BE
Definition: sqlite3.c:4465
SQLITE_PRIVATE const void * sqlite3ValueText(sqlite3_value *, u8)
Definition: sqlite3.c:64166

Here is the call graph for this function:

SQLITE_API const void *SQLITE_STDCALL sqlite3_value_text16le ( sqlite3_value *  pVal)

Definition at line 69175 of file sqlite3.c.

References sqlite3ValueText().

69175  {
69176  return sqlite3ValueText(pVal, SQLITE_UTF16LE);
69177 }
#define SQLITE_UTF16LE
Definition: sqlite3.c:4464
SQLITE_PRIVATE const void * sqlite3ValueText(sqlite3_value *, u8)
Definition: sqlite3.c:64166

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_value_type ( sqlite3_value *  pVal)

Definition at line 69183 of file sqlite3.c.

References sqlite3_value::flags.

Referenced by sqlite3_bind_value(), sqlite3_column_type(), and sqlite3_value_numeric_type().

69183  {
69184  static const u8 aType[] = {
69185  SQLITE_BLOB, /* 0x00 */
69186  SQLITE_NULL, /* 0x01 */
69187  SQLITE_TEXT, /* 0x02 */
69188  SQLITE_NULL, /* 0x03 */
69189  SQLITE_INTEGER, /* 0x04 */
69190  SQLITE_NULL, /* 0x05 */
69191  SQLITE_INTEGER, /* 0x06 */
69192  SQLITE_NULL, /* 0x07 */
69193  SQLITE_FLOAT, /* 0x08 */
69194  SQLITE_NULL, /* 0x09 */
69195  SQLITE_FLOAT, /* 0x0a */
69196  SQLITE_NULL, /* 0x0b */
69197  SQLITE_INTEGER, /* 0x0c */
69198  SQLITE_NULL, /* 0x0d */
69199  SQLITE_INTEGER, /* 0x0e */
69200  SQLITE_NULL, /* 0x0f */
69201  SQLITE_BLOB, /* 0x10 */
69202  SQLITE_NULL, /* 0x11 */
69203  SQLITE_TEXT, /* 0x12 */
69204  SQLITE_NULL, /* 0x13 */
69205  SQLITE_INTEGER, /* 0x14 */
69206  SQLITE_NULL, /* 0x15 */
69207  SQLITE_INTEGER, /* 0x16 */
69208  SQLITE_NULL, /* 0x17 */
69209  SQLITE_FLOAT, /* 0x18 */
69210  SQLITE_NULL, /* 0x19 */
69211  SQLITE_FLOAT, /* 0x1a */
69212  SQLITE_NULL, /* 0x1b */
69213  SQLITE_INTEGER, /* 0x1c */
69214  SQLITE_NULL, /* 0x1d */
69215  SQLITE_INTEGER, /* 0x1e */
69216  SQLITE_NULL, /* 0x1f */
69217  };
69218  return aType[pVal->flags&MEM_AffMask];
69219 }
#define SQLITE_TEXT
Definition: sqlite3.c:4094
#define MEM_AffMask
Definition: sqlite3.c:14705
UINT8_TYPE u8
Definition: sqlite3.c:8959
#define SQLITE_BLOB
Definition: sqlite3.c:4089
#define SQLITE_INTEGER
Definition: sqlite3.c:4087
#define SQLITE_FLOAT
Definition: sqlite3.c:4088
#define SQLITE_NULL
Definition: sqlite3.c:4090
SQLITE_API sqlite3_vfs *SQLITE_STDCALL sqlite3_vfs_find ( const char *  zVfsName)

Definition at line 16775 of file sqlite3.c.

References sqlite3_vfs::pNext, sqlite3_initialize(), sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3MutexAlloc(), and sqlite3_vfs::zName.

Referenced by sqlite3_randomness(), sqlite3_sleep(), and sqlite3ParseUri().

16775  {
16776  sqlite3_vfs *pVfs = 0;
16777 #if SQLITE_THREADSAFE
16778  sqlite3_mutex *mutex;
16779 #endif
16780 #ifndef SQLITE_OMIT_AUTOINIT
16781  int rc = sqlite3_initialize();
16782  if( rc ) return 0;
16783 #endif
16784 #if SQLITE_THREADSAFE
16786 #endif
16787  sqlite3_mutex_enter(mutex);
16788  for(pVfs = vfsList; pVfs; pVfs=pVfs->pNext){
16789  if( zVfs==0 ) break;
16790  if( strcmp(zVfs, pVfs->zName)==0 ) break;
16791  }
16792  sqlite3_mutex_leave(mutex);
16793  return pVfs;
16794 }
#define SQLITE_MUTEX_STATIC_MASTER
Definition: sqlite3.c:6468
SQLITE_API int SQLITE_STDCALL sqlite3_initialize(void)
Definition: sqlite3.c:128111
const char * zName
Definition: sqlite3.c:1381
sqlite3_vfs * pNext
Definition: sqlite3.c:1380
SQLITE_PRIVATE sqlite3_mutex * sqlite3MutexAlloc(int)
Definition: sqlite3.c:19193
#define vfsList
Definition: sqlite3.c:16769
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_vfs_register ( sqlite3_vfs pVfs,
int  makeDflt 
)

Definition at line 16821 of file sqlite3.c.

References sqlite3_vfs::pNext, sqlite3_initialize(), sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3MutexAlloc().

Referenced by sqlite3_os_init().

16821  {
16822  MUTEX_LOGIC(sqlite3_mutex *mutex;)
16823 #ifndef SQLITE_OMIT_AUTOINIT
16824  int rc = sqlite3_initialize();
16825  if( rc ) return rc;
16826 #endif
16827 #ifdef SQLITE_ENABLE_API_ARMOR
16828  if( pVfs==0 ) return SQLITE_MISUSE_BKPT;
16829 #endif
16830 
16832  sqlite3_mutex_enter(mutex);
16833  vfsUnlink(pVfs);
16834  if( makeDflt || vfsList==0 ){
16835  pVfs->pNext = vfsList;
16836  vfsList = pVfs;
16837  }else{
16838  pVfs->pNext = vfsList->pNext;
16839  vfsList->pNext = pVfs;
16840  }
16841  assert(vfsList);
16842  sqlite3_mutex_leave(mutex);
16843  return SQLITE_OK;
16844 }
#define SQLITE_MUTEX_STATIC_MASTER
Definition: sqlite3.c:6468
#define MUTEX_LOGIC(X)
Definition: sqlite3.c:10823
SQLITE_API int SQLITE_STDCALL sqlite3_initialize(void)
Definition: sqlite3.c:128111
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
sqlite3_vfs * pNext
Definition: sqlite3.c:1380
SQLITE_PRIVATE sqlite3_mutex * sqlite3MutexAlloc(int)
Definition: sqlite3.c:19193
#define SQLITE_OK
Definition: sqlite3.c:611
#define vfsList
Definition: sqlite3.c:16769
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_vfs_unregister ( sqlite3_vfs pVfs)

Definition at line 16849 of file sqlite3.c.

References sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3MutexAlloc().

16849  {
16850 #if SQLITE_THREADSAFE
16852 #endif
16853  sqlite3_mutex_enter(mutex);
16854  vfsUnlink(pVfs);
16855  sqlite3_mutex_leave(mutex);
16856  return SQLITE_OK;
16857 }
#define SQLITE_MUTEX_STATIC_MASTER
Definition: sqlite3.c:6468
SQLITE_PRIVATE sqlite3_mutex * sqlite3MutexAlloc(int)
Definition: sqlite3.c:19193
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API char *SQLITE_STDCALL sqlite3_vmprintf ( const char *  zFormat,
va_list  ap 
)

Definition at line 22306 of file sqlite3.c.

References sqlite3_initialize(), sqlite3StrAccumFinish(), sqlite3StrAccumInit(), sqlite3VXPrintf(), and StrAccum::useMalloc.

22306  {
22307  char *z;
22308  char zBase[SQLITE_PRINT_BUF_SIZE];
22309  StrAccum acc;
22310 
22311 #ifdef SQLITE_ENABLE_API_ARMOR
22312  if( zFormat==0 ){
22313  (void)SQLITE_MISUSE_BKPT;
22314  return 0;
22315  }
22316 #endif
22317 #ifndef SQLITE_OMIT_AUTOINIT
22318  if( sqlite3_initialize() ) return 0;
22319 #endif
22320  sqlite3StrAccumInit(&acc, zBase, sizeof(zBase), SQLITE_MAX_LENGTH);
22321  acc.useMalloc = 2;
22322  sqlite3VXPrintf(&acc, 0, zFormat, ap);
22323  z = sqlite3StrAccumFinish(&acc);
22324  return z;
22325 }
SQLITE_PRIVATE void sqlite3StrAccumInit(StrAccum *, char *, int, int)
Definition: sqlite3.c:22241
SQLITE_API int SQLITE_STDCALL sqlite3_initialize(void)
Definition: sqlite3.c:128111
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
#define SQLITE_MAX_LENGTH
Definition: sqlite3.c:8076
SQLITE_PRIVATE char * sqlite3StrAccumFinish(StrAccum *)
Definition: sqlite3.c:22205
SQLITE_PRIVATE void sqlite3VXPrintf(StrAccum *, u32, const char *, va_list)
Definition: sqlite3.c:21524
#define SQLITE_PRINT_BUF_SIZE
Definition: sqlite3.c:21517
u8 useMalloc
Definition: sqlite3.c:12755

Here is the call graph for this function:

SQLITE_API char *SQLITE_STDCALL sqlite3_vsnprintf ( int  n,
char *  zBuf,
const char *  zFormat,
va_list  ap 
)

Definition at line 22356 of file sqlite3.c.

References sqlite3StrAccumFinish(), sqlite3StrAccumInit(), sqlite3VXPrintf(), and StrAccum::useMalloc.

22356  {
22357  StrAccum acc;
22358  if( n<=0 ) return zBuf;
22359 #ifdef SQLITE_ENABLE_API_ARMOR
22360  if( zBuf==0 || zFormat==0 ) {
22361  (void)SQLITE_MISUSE_BKPT;
22362  if( zBuf ) zBuf[0] = 0;
22363  return zBuf;
22364  }
22365 #endif
22366  sqlite3StrAccumInit(&acc, zBuf, n, 0);
22367  acc.useMalloc = 0;
22368  sqlite3VXPrintf(&acc, 0, zFormat, ap);
22369  return sqlite3StrAccumFinish(&acc);
22370 }
SQLITE_PRIVATE void sqlite3StrAccumInit(StrAccum *, char *, int, int)
Definition: sqlite3.c:22241
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_PRIVATE char * sqlite3StrAccumFinish(StrAccum *)
Definition: sqlite3.c:22205
SQLITE_PRIVATE void sqlite3VXPrintf(StrAccum *, u32, const char *, va_list)
Definition: sqlite3.c:21524
u8 useMalloc
Definition: sqlite3.c:12755

Here is the call graph for this function:

SQLITE_API int SQLITE_CDECL sqlite3_vtab_config ( sqlite3 db,
int  op,
  ... 
)

Definition at line 115677 of file sqlite3.c.

References sqlite3::mutex, sqlite3::pVtabCtx, sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3Error().

115677  {
115678  va_list ap;
115679  int rc = SQLITE_OK;
115680 
115681 #ifdef SQLITE_ENABLE_API_ARMOR
115682  if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
115683 #endif
115684  sqlite3_mutex_enter(db->mutex);
115685  va_start(ap, op);
115686  switch( op ){
115688  VtabCtx *p = db->pVtabCtx;
115689  if( !p ){
115690  rc = SQLITE_MISUSE_BKPT;
115691  }else{
115692  assert( p->pTab==0 || (p->pTab->tabFlags & TF_Virtual)!=0 );
115693  p->pVTable->bConstraint = (u8)va_arg(ap, int);
115694  }
115695  break;
115696  }
115697  default:
115698  rc = SQLITE_MISUSE_BKPT;
115699  break;
115700  }
115701  va_end(ap);
115702 
115703  if( rc!=SQLITE_OK ) sqlite3Error(db, rc);
115704  sqlite3_mutex_leave(db->mutex);
115705  return rc;
115706 }
#define TF_Virtual
Definition: sqlite3.c:11552
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
UINT8_TYPE u8
Definition: sqlite3.c:8959
u8 tabFlags
Definition: sqlite3.c:11524
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_PRIVATE void sqlite3Error(sqlite3 *, int)
Definition: sqlite3.c:23556
VTable * pVTable
Definition: sqlite3.c:114583
VtabCtx * pVtabCtx
Definition: sqlite3.c:11069
#define SQLITE_VTAB_CONSTRAINT_SUPPORT
Definition: sqlite3.c:7775
Table * pTab
Definition: sqlite3.c:114584
u8 bConstraint
Definition: sqlite3.c:11470
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_vtab_on_conflict ( sqlite3 db)

Definition at line 115659 of file sqlite3.c.

References sqlite3::vtabOnConflict.

115659  {
115660  static const unsigned char aMap[] = {
115662  };
115663 #ifdef SQLITE_ENABLE_API_ARMOR
115664  if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
115665 #endif
115666  assert( OE_Rollback==1 && OE_Abort==2 && OE_Fail==3 );
115667  assert( OE_Ignore==4 && OE_Replace==5 );
115668  assert( db->vtabOnConflict>=1 && db->vtabOnConflict<=5 );
115669  return (int)aMap[db->vtabOnConflict-1];
115670 }
#define SQLITE_ABORT
Definition: sqlite3.c:616
#define OE_Replace
Definition: sqlite3.c:11648
#define SQLITE_ROLLBACK
Definition: sqlite3.c:7801
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
#define OE_Abort
Definition: sqlite3.c:11645
#define OE_Rollback
Definition: sqlite3.c:11644
u8 vtabOnConflict
Definition: sqlite3.c:11012
#define SQLITE_IGNORE
Definition: sqlite3.c:2821
#define OE_Ignore
Definition: sqlite3.c:11647
#define OE_Fail
Definition: sqlite3.c:11646
#define SQLITE_REPLACE
Definition: sqlite3.c:7805
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
#define SQLITE_FAIL
Definition: sqlite3.c:7803
SQLITE_API int SQLITE_STDCALL sqlite3_wal_autocheckpoint ( sqlite3 db,
int  N 
)

Definition at line 129886 of file sqlite3.c.

References sqlite3_wal_hook(), and sqlite3WalDefaultHook().

Referenced by sqlite3Pragma().

129886  {
129887 #ifdef SQLITE_OMIT_WAL
129888  UNUSED_PARAMETER(db);
129889  UNUSED_PARAMETER(nFrame);
129890 #else
129891 #ifdef SQLITE_ENABLE_API_ARMOR
129892  if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
129893 #endif
129894  if( nFrame>0 ){
129896  }else{
129897  sqlite3_wal_hook(db, 0, 0);
129898  }
129899 #endif
129900  return SQLITE_OK;
129901 }
SQLITE_API void *SQLITE_STDCALL sqlite3_wal_hook(sqlite3 *, int(*)(void *, sqlite3 *, const char *, int), void *)
Definition: sqlite3.c:129907
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_PRIVATE int sqlite3WalDefaultHook(void *, sqlite3 *, const char *, int)
Definition: sqlite3.c:129860
#define SQLITE_INT_TO_PTR(X)
Definition: sqlite3.c:8306
#define SQLITE_OK
Definition: sqlite3.c:611
#define UNUSED_PARAMETER(x)
Definition: sqlite3.c:9257
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_wal_checkpoint ( sqlite3 db,
const char *  zDb 
)

Definition at line 129989 of file sqlite3.c.

References sqlite3_wal_checkpoint_v2().

Referenced by sqlite3WalDefaultHook().

129989  {
129990  /* EVIDENCE-OF: R-41613-20553 The sqlite3_wal_checkpoint(D,X) is equivalent to
129991  ** sqlite3_wal_checkpoint_v2(D,X,SQLITE_CHECKPOINT_PASSIVE,0,0). */
129993 }
SQLITE_API int SQLITE_STDCALL sqlite3_wal_checkpoint_v2(sqlite3 *db, const char *zDb, int eMode, int *pnLog, int *pnCkpt)
Definition: sqlite3.c:129934
#define SQLITE_CHECKPOINT_PASSIVE
Definition: sqlite3.c:7715

Here is the call graph for this function:

SQLITE_API int SQLITE_STDCALL sqlite3_wal_checkpoint_v2 ( sqlite3 db,
const char *  zDb,
int  eMode,
int *  pnLog,
int *  pnCkpt 
)

Definition at line 129934 of file sqlite3.c.

References sqlite3::busyHandler, sqlite3::mutex, BusyHandler::nBusy, sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3ApiExit(), sqlite3Checkpoint(), sqlite3Error(), sqlite3ErrorWithMsg(), and sqlite3FindDbName().

Referenced by sqlite3_wal_checkpoint().

129940  {
129941 #ifdef SQLITE_OMIT_WAL
129942  return SQLITE_OK;
129943 #else
129944  int rc; /* Return code */
129945  int iDb = SQLITE_MAX_ATTACHED; /* sqlite3.aDb[] index of db to checkpoint */
129946 
129947 #ifdef SQLITE_ENABLE_API_ARMOR
129948  if( !sqlite3SafetyCheckOk(db) ) return SQLITE_MISUSE_BKPT;
129949 #endif
129950 
129951  /* Initialize the output variables to -1 in case an error occurs. */
129952  if( pnLog ) *pnLog = -1;
129953  if( pnCkpt ) *pnCkpt = -1;
129954 
129955  assert( SQLITE_CHECKPOINT_PASSIVE==0 );
129956  assert( SQLITE_CHECKPOINT_FULL==1 );
129957  assert( SQLITE_CHECKPOINT_RESTART==2 );
129958  assert( SQLITE_CHECKPOINT_TRUNCATE==3 );
129959  if( eMode<SQLITE_CHECKPOINT_PASSIVE || eMode>SQLITE_CHECKPOINT_TRUNCATE ){
129960  /* EVIDENCE-OF: R-03996-12088 The M parameter must be a valid checkpoint
129961  ** mode: */
129962  return SQLITE_MISUSE;
129963  }
129964 
129965  sqlite3_mutex_enter(db->mutex);
129966  if( zDb && zDb[0] ){
129967  iDb = sqlite3FindDbName(db, zDb);
129968  }
129969  if( iDb<0 ){
129970  rc = SQLITE_ERROR;
129971  sqlite3ErrorWithMsg(db, SQLITE_ERROR, "unknown database: %s", zDb);
129972  }else{
129973  db->busyHandler.nBusy = 0;
129974  rc = sqlite3Checkpoint(db, iDb, eMode, pnLog, pnCkpt);
129975  sqlite3Error(db, rc);
129976  }
129977  rc = sqlite3ApiExit(db, rc);
129978  sqlite3_mutex_leave(db->mutex);
129979  return rc;
129980 #endif
129981 }
#define SQLITE_MAX_ATTACHED
Definition: sqlite3.c:8179
SQLITE_PRIVATE int sqlite3ApiExit(sqlite3 *db, int)
Definition: sqlite3.c:21337
SQLITE_PRIVATE int sqlite3Checkpoint(sqlite3 *, int, int, int *, int *)
Definition: sqlite3.c:130015
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_CHECKPOINT_RESTART
Definition: sqlite3.c:7717
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
SQLITE_PRIVATE void sqlite3Error(sqlite3 *, int)
Definition: sqlite3.c:23556
#define SQLITE_ERROR
Definition: sqlite3.c:613
#define SQLITE_MISUSE
Definition: sqlite3.c:633
#define SQLITE_CHECKPOINT_FULL
Definition: sqlite3.c:7716
SQLITE_PRIVATE int sqlite3FindDbName(sqlite3 *, const char *)
Definition: sqlite3.c:91518
SQLITE_PRIVATE void sqlite3ErrorWithMsg(sqlite3 *, int, const char *,...)
Definition: sqlite3.c:23583
#define SQLITE_CHECKPOINT_PASSIVE
Definition: sqlite3.c:7715
#define SQLITE_CHECKPOINT_TRUNCATE
Definition: sqlite3.c:7718
BusyHandler busyHandler
Definition: sqlite3.c:11075
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_API void *SQLITE_STDCALL sqlite3_wal_hook ( sqlite3 db,
int(*)(void *, sqlite3 *, const char *, int)  xCallback,
void *  pArg 
)

Definition at line 129907 of file sqlite3.c.

References sqlite3::mutex, sqlite3::pWalArg, sqlite3_mutex_enter(), sqlite3_mutex_leave(), and sqlite3::xWalCallback.

Referenced by sqlite3_wal_autocheckpoint().

129911  {
129912 #ifndef SQLITE_OMIT_WAL
129913  void *pRet;
129914 #ifdef SQLITE_ENABLE_API_ARMOR
129915  if( !sqlite3SafetyCheckOk(db) ){
129916  (void)SQLITE_MISUSE_BKPT;
129917  return 0;
129918  }
129919 #endif
129920  sqlite3_mutex_enter(db->mutex);
129921  pRet = db->pWalArg;
129922  db->xWalCallback = xCallback;
129923  db->pWalArg = pArg;
129924  sqlite3_mutex_leave(db->mutex);
129925  return pRet;
129926 #else
129927  return 0;
129928 #endif
129929 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
#define SQLITE_MISUSE_BKPT
Definition: sqlite3.c:12931
int(* xWalCallback)(void *, sqlite3 *, const char *, int)
Definition: sqlite3.c:11045
void * pWalArg
Definition: sqlite3.c:11046
SQLITE_PRIVATE int sqlite3SafetyCheckOk(sqlite3 *)
Definition: sqlite3.c:24599
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3AbsInt32 ( int  x)

Definition at line 24700 of file sqlite3.c.

Referenced by sqlite3Pragma().

24700  {
24701  if( x>=0 ) return x;
24702  if( x==(int)0x80000000 ) return 0x7fffffff;
24703  return -x;
24704 }
SQLITE_PRIVATE void sqlite3AddCheckConstraint ( Parse pParse,
Expr pCheckExpr 
)

Definition at line 92158 of file sqlite3.c.

References sqlite3::aDb, Parse::constraintName, Parse::db, sqlite3::sqlite3InitInfo::iDb, Token::n, Db::pBt, Table::pCheck, Parse::pNewTable, sqlite3BtreeIsReadonly(), sqlite3ExprDelete(), sqlite3ExprListAppend(), and sqlite3ExprListSetName().

92161  {
92162 #ifndef SQLITE_OMIT_CHECK
92163  Table *pTab = pParse->pNewTable;
92164  sqlite3 *db = pParse->db;
92165  if( pTab && !IN_DECLARE_VTAB
92166  && !sqlite3BtreeIsReadonly(db->aDb[db->init.iDb].pBt)
92167  ){
92168  pTab->pCheck = sqlite3ExprListAppend(pParse, pTab->pCheck, pCheckExpr);
92169  if( pParse->constraintName.n ){
92170  sqlite3ExprListSetName(pParse, pTab->pCheck, &pParse->constraintName, 1);
92171  }
92172  }else
92173 #endif
92174  {
92175  sqlite3ExprDelete(pParse->db, pCheckExpr);
92176  }
92177 }
Table * pNewTable
Definition: sqlite3.c:12591
ExprList * pCheck
Definition: sqlite3.c:11513
unsigned int n
Definition: sqlite3.c:11799
#define IN_DECLARE_VTAB
Definition: sqlite3.c:12611
struct sqlite3::sqlite3InitInfo init
SQLITE_PRIVATE int sqlite3BtreeIsReadonly(Btree *pBt)
Definition: sqlite3.c:62322
SQLITE_PRIVATE void sqlite3ExprListSetName(Parse *, ExprList *, Token *, int)
Definition: sqlite3.c:83980
Btree * pBt
Definition: sqlite3.c:10839
SQLITE_PRIVATE void sqlite3ExprDelete(sqlite3 *, Expr *)
Definition: sqlite3.c:83532
Token constraintName
Definition: sqlite3.c:12537
Db * aDb
Definition: sqlite3.c:10996
sqlite3 * db
Definition: sqlite3.c:12500
SQLITE_PRIVATE ExprList * sqlite3ExprListAppend(Parse *, ExprList *, Expr *)
Definition: sqlite3.c:83935

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3AddCollateType ( Parse pParse,
Token pToken 
)

Definition at line 92183 of file sqlite3.c.

References Table::aCol, Index::aiColumn, Index::azColl, Parse::db, Table::nCol, Table::pIndex, Parse::pNewTable, Index::pNext, sqlite3DbFree(), sqlite3LocateCollSeq(), sqlite3NameFromToken(), and Column::zColl.

92183  {
92184  Table *p;
92185  int i;
92186  char *zColl; /* Dequoted name of collation sequence */
92187  sqlite3 *db;
92188 
92189  if( (p = pParse->pNewTable)==0 ) return;
92190  i = p->nCol-1;
92191  db = pParse->db;
92192  zColl = sqlite3NameFromToken(db, pToken);
92193  if( !zColl ) return;
92194 
92195  if( sqlite3LocateCollSeq(pParse, zColl) ){
92196  Index *pIdx;
92197  sqlite3DbFree(db, p->aCol[i].zColl);
92198  p->aCol[i].zColl = zColl;
92199 
92200  /* If the column is declared as "<name> PRIMARY KEY COLLATE <type>",
92201  ** then an index may have been created on this column before the
92202  ** collation type was added. Correct this if it is the case.
92203  */
92204  for(pIdx=p->pIndex; pIdx; pIdx=pIdx->pNext){
92205  assert( pIdx->nKeyCol==1 );
92206  if( pIdx->aiColumn[0]==i ){
92207  pIdx->azColl[0] = p->aCol[i].zColl;
92208  }
92209  }
92210  }else{
92211  sqlite3DbFree(db, zColl);
92212  }
92213 }
Index * pIndex
Definition: sqlite3.c:11508
Table * pNewTable
Definition: sqlite3.c:12591
char * zColl
Definition: sqlite3.c:11346
Column * aCol
Definition: sqlite3.c:11507
SQLITE_PRIVATE char * sqlite3NameFromToken(sqlite3 *, Token *)
Definition: sqlite3.c:91488
char ** azColl
Definition: sqlite3.c:11740
i16 nCol
Definition: sqlite3.c:11518
SQLITE_PRIVATE CollSeq * sqlite3LocateCollSeq(Parse *pParse, const char *zName)
Definition: sqlite3.c:92235
Index * pNext
Definition: sqlite3.c:11737
u16 nKeyCol
Definition: sqlite3.c:11744
i16 * aiColumn
Definition: sqlite3.c:11733
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
sqlite3 * db
Definition: sqlite3.c:12500

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3AddColumn ( Parse pParse,
Token pName 
)

Definition at line 91869 of file sqlite3.c.

References Table::aCol, Column::affinity, sqlite3::aLimit, Parse::db, Table::nCol, Parse::pNewTable, sqlite3DbFree(), sqlite3ErrorMsg(), sqlite3NameFromToken(), Column::szEst, Column::zName, and Table::zName.

91869  {
91870  Table *p;
91871  int i;
91872  char *z;
91873  Column *pCol;
91874  sqlite3 *db = pParse->db;
91875  if( (p = pParse->pNewTable)==0 ) return;
91876 #if SQLITE_MAX_COLUMN
91877  if( p->nCol+1>db->aLimit[SQLITE_LIMIT_COLUMN] ){
91878  sqlite3ErrorMsg(pParse, "too many columns on %s", p->zName);
91879  return;
91880  }
91881 #endif
91882  z = sqlite3NameFromToken(db, pName);
91883  if( z==0 ) return;
91884  for(i=0; i<p->nCol; i++){
91885  if( STRICMP(z, p->aCol[i].zName) ){
91886  sqlite3ErrorMsg(pParse, "duplicate column name: %s", z);
91887  sqlite3DbFree(db, z);
91888  return;
91889  }
91890  }
91891  if( (p->nCol & 0x7)==0 ){
91892  Column *aNew;
91893  aNew = sqlite3DbRealloc(db,p->aCol,(p->nCol+8)*sizeof(p->aCol[0]));
91894  if( aNew==0 ){
91895  sqlite3DbFree(db, z);
91896  return;
91897  }
91898  p->aCol = aNew;
91899  }
91900  pCol = &p->aCol[p->nCol];
91901  memset(pCol, 0, sizeof(p->aCol[0]));
91902  pCol->zName = z;
91903 
91904  /* If there is no type specified, columns have the default affinity
91905  ** 'NONE'. If there is a type specified, then sqlite3AddColumnType() will
91906  ** be called next to set pCol->affinity correctly.
91907  */
91908  pCol->affinity = SQLITE_AFF_NONE;
91909  pCol->szEst = 1;
91910  p->nCol++;
91911 }
Table * pNewTable
Definition: sqlite3.c:12591
SQLITE_PRIVATE void * sqlite3DbRealloc(sqlite3 *, void *, u64)
Definition: sqlite3.c:21219
Column * aCol
Definition: sqlite3.c:11507
#define STRICMP(x, y)
Definition: sqlite3.c:91856
SQLITE_PRIVATE char * sqlite3NameFromToken(sqlite3 *, Token *)
Definition: sqlite3.c:91488
#define SQLITE_LIMIT_COLUMN
Definition: sqlite3.c:3404
i16 nCol
Definition: sqlite3.c:11518
int aLimit[SQLITE_N_LIMIT]
Definition: sqlite3.c:11018
u8 szEst
Definition: sqlite3.c:11349
SQLITE_PRIVATE void sqlite3ErrorMsg(Parse *, const char *,...)
Definition: sqlite3.c:23615
char * zName
Definition: sqlite3.c:11342
char affinity
Definition: sqlite3.c:11348
#define SQLITE_AFF_NONE
Definition: sqlite3.c:11395
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
sqlite3 * db
Definition: sqlite3.c:12500
char * zName
Definition: sqlite3.c:11506

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3AddColumnType ( Parse pParse,
Token pType 
)

Definition at line 92022 of file sqlite3.c.

References Table::aCol, Column::affinity, Parse::db, Table::nCol, Parse::pNewTable, sqlite3AffinityType(), sqlite3DbFree(), sqlite3NameFromToken(), Column::szEst, and Column::zType.

92022  {
92023  Table *p;
92024  Column *pCol;
92025 
92026  p = pParse->pNewTable;
92027  if( p==0 || NEVER(p->nCol<1) ) return;
92028  pCol = &p->aCol[p->nCol-1];
92029  assert( pCol->zType==0 || CORRUPT_DB );
92030  sqlite3DbFree(pParse->db, pCol->zType);
92031  pCol->zType = sqlite3NameFromToken(pParse->db, pType);
92032  pCol->affinity = sqlite3AffinityType(pCol->zType, &pCol->szEst);
92033 }
Table * pNewTable
Definition: sqlite3.c:12591
char * zType
Definition: sqlite3.c:11345
#define NEVER(X)
Definition: sqlite3.c:8509
Column * aCol
Definition: sqlite3.c:11507
SQLITE_PRIVATE char * sqlite3NameFromToken(sqlite3 *, Token *)
Definition: sqlite3.c:91488
#define CORRUPT_DB
Definition: sqlite3.c:12848
i16 nCol
Definition: sqlite3.c:11518
u8 szEst
Definition: sqlite3.c:11349
SQLITE_PRIVATE char sqlite3AffinityType(const char *, u8 *)
Definition: sqlite3.c:91951
char affinity
Definition: sqlite3.c:11348
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
sqlite3 * db
Definition: sqlite3.c:12500

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3AddDefaultValue ( Parse pParse,
ExprSpan pSpan 
)

Definition at line 92045 of file sqlite3.c.

References Table::aCol, sqlite3::sqlite3InitInfo::busy, Parse::db, Table::nCol, Column::pDflt, ExprSpan::pExpr, Parse::pNewTable, sqlite3DbFree(), sqlite3DbStrNDup(), sqlite3ErrorMsg(), sqlite3ExprDelete(), sqlite3ExprDup(), sqlite3ExprIsConstantOrFunction(), Column::zDflt, ExprSpan::zEnd, Column::zName, and ExprSpan::zStart.

92045  {
92046  Table *p;
92047  Column *pCol;
92048  sqlite3 *db = pParse->db;
92049  p = pParse->pNewTable;
92050  if( p!=0 ){
92051  pCol = &(p->aCol[p->nCol-1]);
92052  if( !sqlite3ExprIsConstantOrFunction(pSpan->pExpr, db->init.busy) ){
92053  sqlite3ErrorMsg(pParse, "default value of column [%s] is not constant",
92054  pCol->zName);
92055  }else{
92056  /* A copy of pExpr is used instead of the original, as pExpr contains
92057  ** tokens that point to volatile memory. The 'span' of the expression
92058  ** is required by pragma table_info.
92059  */
92060  sqlite3ExprDelete(db, pCol->pDflt);
92061  pCol->pDflt = sqlite3ExprDup(db, pSpan->pExpr, EXPRDUP_REDUCE);
92062  sqlite3DbFree(db, pCol->zDflt);
92063  pCol->zDflt = sqlite3DbStrNDup(db, (char*)pSpan->zStart,
92064  (int)(pSpan->zEnd - pSpan->zStart));
92065  }
92066  }
92067  sqlite3ExprDelete(db, pSpan->pExpr);
92068 }
const char * zEnd
Definition: sqlite3.c:12078
Table * pNewTable
Definition: sqlite3.c:12591
char * zDflt
Definition: sqlite3.c:11344
Expr * pDflt
Definition: sqlite3.c:11343
const char * zStart
Definition: sqlite3.c:12077
#define EXPRDUP_REDUCE
Definition: sqlite3.c:12032
Column * aCol
Definition: sqlite3.c:11507
struct sqlite3::sqlite3InitInfo init
i16 nCol
Definition: sqlite3.c:11518
Expr * pExpr
Definition: sqlite3.c:12076
SQLITE_PRIVATE void sqlite3ErrorMsg(Parse *, const char *,...)
Definition: sqlite3.c:23615
SQLITE_PRIVATE char * sqlite3DbStrNDup(sqlite3 *, const char *, u64)
Definition: sqlite3.c:21285
SQLITE_PRIVATE void sqlite3ExprDelete(sqlite3 *, Expr *)
Definition: sqlite3.c:83532
SQLITE_PRIVATE Expr * sqlite3ExprDup(sqlite3 *, Expr *, int)
Definition: sqlite3.c:83792
char * zName
Definition: sqlite3.c:11342
SQLITE_PRIVATE int sqlite3ExprIsConstantOrFunction(Expr *, u8)
Definition: sqlite3.c:84208
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
sqlite3 * db
Definition: sqlite3.c:12500

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3AddInt64 ( i64 pA,
i64  iB 
)

Definition at line 24636 of file sqlite3.c.

Referenced by sqlite3MulInt64(), sqlite3SubInt64(), and sqlite3VdbeExec().

24636  {
24637  i64 iA = *pA;
24638  testcase( iA==0 ); testcase( iA==1 );
24639  testcase( iB==-1 ); testcase( iB==0 );
24640  if( iB>=0 ){
24641  testcase( iA>0 && LARGEST_INT64 - iA == iB );
24642  testcase( iA>0 && LARGEST_INT64 - iA == iB - 1 );
24643  if( iA>0 && LARGEST_INT64 - iA < iB ) return 1;
24644  }else{
24645  testcase( iA<0 && -(iA + LARGEST_INT64) == iB + 1 );
24646  testcase( iA<0 && -(iA + LARGEST_INT64) == iB + 2 );
24647  if( iA<0 && -(iA + LARGEST_INT64) > iB + 1 ) return 1;
24648  }
24649  *pA += iB;
24650  return 0;
24651 }
#define testcase(X)
Definition: sqlite3.c:8458
sqlite_int64 i64
Definition: sqlite3.c:8954
#define LARGEST_INT64
Definition: sqlite3.c:9063
SQLITE_PRIVATE void sqlite3AddNotNull ( Parse pParse,
int  onError 
)

Definition at line 91919 of file sqlite3.c.

References Table::aCol, Table::nCol, Column::notNull, and Parse::pNewTable.

91919  {
91920  Table *p;
91921  p = pParse->pNewTable;
91922  if( p==0 || NEVER(p->nCol<1) ) return;
91923  p->aCol[p->nCol-1].notNull = (u8)onError;
91924 }
u8 notNull
Definition: sqlite3.c:11347
Table * pNewTable
Definition: sqlite3.c:12591
#define NEVER(X)
Definition: sqlite3.c:8509
UINT8_TYPE u8
Definition: sqlite3.c:8959
Column * aCol
Definition: sqlite3.c:11507
i16 nCol
Definition: sqlite3.c:11518
SQLITE_PRIVATE void sqlite3AddPrimaryKey ( Parse pParse,
ExprList pList,
int  onError,
int  autoInc,
int  sortOrder 
)

Definition at line 92088 of file sqlite3.c.

References Table::aCol, Parse::addrSkipPK, Column::colFlags, Parse::db, Index::idxType, Table::iPKey, Parse::iPkSortOrder, Table::keyConf, Table::nCol, ExprList::nExpr, Parse::pNewTable, Parse::pVdbe, ExprList::ExprList_item::sortOrder, sqlite3_stricmp(), sqlite3CreateIndex(), sqlite3ErrorMsg(), sqlite3ExprListDelete(), sqlite3VdbeAddOp0(), sqlite3VdbeJumpHere(), Table::tabFlags, Column::zName, Table::zName, ExprList::ExprList_item::zName, and Column::zType.

92094  {
92095  Table *pTab = pParse->pNewTable;
92096  char *zType = 0;
92097  int iCol = -1, i;
92098  int nTerm;
92099  if( pTab==0 || IN_DECLARE_VTAB ) goto primary_key_exit;
92100  if( pTab->tabFlags & TF_HasPrimaryKey ){
92101  sqlite3ErrorMsg(pParse,
92102  "table \"%s\" has more than one primary key", pTab->zName);
92103  goto primary_key_exit;
92104  }
92105  pTab->tabFlags |= TF_HasPrimaryKey;
92106  if( pList==0 ){
92107  iCol = pTab->nCol - 1;
92108  pTab->aCol[iCol].colFlags |= COLFLAG_PRIMKEY;
92109  zType = pTab->aCol[iCol].zType;
92110  nTerm = 1;
92111  }else{
92112  nTerm = pList->nExpr;
92113  for(i=0; i<nTerm; i++){
92114  for(iCol=0; iCol<pTab->nCol; iCol++){
92115  if( sqlite3StrICmp(pList->a[i].zName, pTab->aCol[iCol].zName)==0 ){
92116  pTab->aCol[iCol].colFlags |= COLFLAG_PRIMKEY;
92117  zType = pTab->aCol[iCol].zType;
92118  break;
92119  }
92120  }
92121  }
92122  }
92123  if( nTerm==1
92124  && zType && sqlite3StrICmp(zType, "INTEGER")==0
92125  && sortOrder==SQLITE_SO_ASC
92126  ){
92127  pTab->iPKey = iCol;
92128  pTab->keyConf = (u8)onError;
92129  assert( autoInc==0 || autoInc==1 );
92130  pTab->tabFlags |= autoInc*TF_Autoincrement;
92131  if( pList ) pParse->iPkSortOrder = pList->a[0].sortOrder;
92132  }else if( autoInc ){
92133 #ifndef SQLITE_OMIT_AUTOINCREMENT
92134  sqlite3ErrorMsg(pParse, "AUTOINCREMENT is only allowed on an "
92135  "INTEGER PRIMARY KEY");
92136 #endif
92137  }else{
92138  Vdbe *v = pParse->pVdbe;
92139  Index *p;
92140  if( v ) pParse->addrSkipPK = sqlite3VdbeAddOp0(v, OP_Noop);
92141  p = sqlite3CreateIndex(pParse, 0, 0, 0, pList, onError, 0,
92142  0, sortOrder, 0);
92143  if( p ){
92145  if( v ) sqlite3VdbeJumpHere(v, pParse->addrSkipPK);
92146  }
92147  pList = 0;
92148  }
92149 
92150 primary_key_exit:
92151  sqlite3ExprListDelete(pParse->db, pList);
92152  return;
92153 }
Table * pNewTable
Definition: sqlite3.c:12591
char * zType
Definition: sqlite3.c:11345
SQLITE_PRIVATE Index * sqlite3CreateIndex(Parse *, Token *, Token *, SrcList *, ExprList *, int, Token *, Expr *, int, int)
Definition: sqlite3.c:93641
SQLITE_PRIVATE void sqlite3VdbeJumpHere(Vdbe *, int addr)
Definition: sqlite3.c:65494
#define SQLITE_IDXTYPE_PRIMARYKEY
Definition: sqlite3.c:11768
UINT8_TYPE u8
Definition: sqlite3.c:8959
Column * aCol
Definition: sqlite3.c:11507
#define TF_Autoincrement
Definition: sqlite3.c:11551
#define IN_DECLARE_VTAB
Definition: sqlite3.c:12611
u8 tabFlags
Definition: sqlite3.c:11524
int nExpr
Definition: sqlite3.c:12051
int addrSkipPK
Definition: sqlite3.c:12558
unsigned idxType
Definition: sqlite3.c:11747
i16 nCol
Definition: sqlite3.c:11518
#define OP_Noop
Definition: sqlite3.c:9914
u8 iPkSortOrder
Definition: sqlite3.c:12575
#define sqlite3StrICmp
Definition: sqlite3.c:12980
SQLITE_PRIVATE void sqlite3ErrorMsg(Parse *, const char *,...)
Definition: sqlite3.c:23615
i16 iPKey
Definition: sqlite3.c:11517
u8 keyConf
Definition: sqlite3.c:11525
#define TF_HasPrimaryKey
Definition: sqlite3.c:11550
char * zName
Definition: sqlite3.c:11342
#define COLFLAG_PRIMKEY
Definition: sqlite3.c:11355
SQLITE_PRIVATE void sqlite3ExprListDelete(sqlite3 *, ExprList *)
Definition: sqlite3.c:84042
Vdbe * pVdbe
Definition: sqlite3.c:12502
struct ExprList::ExprList_item * a
sqlite3 * db
Definition: sqlite3.c:12500
SQLITE_PRIVATE int sqlite3VdbeAddOp0(Vdbe *, int)
Definition: sqlite3.c:65010
char * zName
Definition: sqlite3.c:11506
#define SQLITE_SO_ASC
Definition: sqlite3.c:11378
u8 colFlags
Definition: sqlite3.c:11350

Here is the call graph for this function:

SQLITE_PRIVATE char sqlite3AffinityType ( const char *  zIn,
u8 pszEst 
)

Definition at line 91951 of file sqlite3.c.

References sqlite3GetInt32(), and sqlite3UpperToLower.

Referenced by sqlite3AddColumnType(), sqlite3ExprAffinity(), and sqlite3ExprCodeTarget().

91951  {
91952  u32 h = 0;
91953  char aff = SQLITE_AFF_NUMERIC;
91954  const char *zChar = 0;
91955 
91956  if( zIn==0 ) return aff;
91957  while( zIn[0] ){
91958  h = (h<<8) + sqlite3UpperToLower[(*zIn)&0xff];
91959  zIn++;
91960  if( h==(('c'<<24)+('h'<<16)+('a'<<8)+'r') ){ /* CHAR */
91961  aff = SQLITE_AFF_TEXT;
91962  zChar = zIn;
91963  }else if( h==(('c'<<24)+('l'<<16)+('o'<<8)+'b') ){ /* CLOB */
91964  aff = SQLITE_AFF_TEXT;
91965  }else if( h==(('t'<<24)+('e'<<16)+('x'<<8)+'t') ){ /* TEXT */
91966  aff = SQLITE_AFF_TEXT;
91967  }else if( h==(('b'<<24)+('l'<<16)+('o'<<8)+'b') /* BLOB */
91968  && (aff==SQLITE_AFF_NUMERIC || aff==SQLITE_AFF_REAL) ){
91969  aff = SQLITE_AFF_NONE;
91970  if( zIn[0]=='(' ) zChar = zIn;
91971 #ifndef SQLITE_OMIT_FLOATING_POINT
91972  }else if( h==(('r'<<24)+('e'<<16)+('a'<<8)+'l') /* REAL */
91973  && aff==SQLITE_AFF_NUMERIC ){
91974  aff = SQLITE_AFF_REAL;
91975  }else if( h==(('f'<<24)+('l'<<16)+('o'<<8)+'a') /* FLOA */
91976  && aff==SQLITE_AFF_NUMERIC ){
91977  aff = SQLITE_AFF_REAL;
91978  }else if( h==(('d'<<24)+('o'<<16)+('u'<<8)+'b') /* DOUB */
91979  && aff==SQLITE_AFF_NUMERIC ){
91980  aff = SQLITE_AFF_REAL;
91981 #endif
91982  }else if( (h&0x00FFFFFF)==(('i'<<16)+('n'<<8)+'t') ){ /* INT */
91983  aff = SQLITE_AFF_INTEGER;
91984  break;
91985  }
91986  }
91987 
91988  /* If pszEst is not NULL, store an estimate of the field size. The
91989  ** estimate is scaled so that the size of an integer is 1. */
91990  if( pszEst ){
91991  *pszEst = 1; /* default size is approx 4 bytes */
91992  if( aff<SQLITE_AFF_NUMERIC ){
91993  if( zChar ){
91994  while( zChar[0] ){
91995  if( sqlite3Isdigit(zChar[0]) ){
91996  int v = 0;
91997  sqlite3GetInt32(zChar, &v);
91998  v = v/4 + 1;
91999  if( v>255 ) v = 255;
92000  *pszEst = v; /* BLOB(k), VARCHAR(k), CHAR(k) -> r=(k/4+1) */
92001  break;
92002  }
92003  zChar++;
92004  }
92005  }else{
92006  *pszEst = 5; /* BLOB, TEXT, CLOB -> r=5 (approx 20 bytes)*/
92007  }
92008  }
92009  }
92010  return aff;
92011 }
#define SQLITE_AFF_INTEGER
Definition: sqlite3.c:11398
SQLITE_PRIVATE const unsigned char sqlite3UpperToLower[]
Definition: sqlite3.c:13813
UINT32_TYPE u32
Definition: sqlite3.c:8956
#define sqlite3Isdigit(x)
Definition: sqlite3.c:12963
SQLITE_PRIVATE int sqlite3GetInt32(const char *, int *)
Definition: sqlite3.c:24068
#define SQLITE_AFF_TEXT
Definition: sqlite3.c:11396
#define SQLITE_AFF_NONE
Definition: sqlite3.c:11395
#define SQLITE_AFF_REAL
Definition: sqlite3.c:11399
#define SQLITE_AFF_NUMERIC
Definition: sqlite3.c:11397

Here is the call graph for this function:

SQLITE_PRIVATE Index * sqlite3AllocateIndexObject ( sqlite3 db,
i16  nCol,
int  nExtra,
char **  ppExtra 
)

Definition at line 93597 of file sqlite3.c.

References Index::aiColumn, Index::aiRowLogEst, Index::aSortOrder, Index::azColl, Index::nColumn, and Index::nKeyCol.

Referenced by sqlite3CreateIndex().

93602  {
93603  Index *p; /* Allocated index object */
93604  int nByte; /* Bytes of space for Index object + arrays */
93605 
93606  nByte = ROUND8(sizeof(Index)) + /* Index structure */
93607  ROUND8(sizeof(char*)*nCol) + /* Index.azColl */
93608  ROUND8(sizeof(LogEst)*(nCol+1) + /* Index.aiRowLogEst */
93609  sizeof(i16)*nCol + /* Index.aiColumn */
93610  sizeof(u8)*nCol); /* Index.aSortOrder */
93611  p = sqlite3DbMallocZero(db, nByte + nExtra);
93612  if( p ){
93613  char *pExtra = ((char*)p)+ROUND8(sizeof(Index));
93614  p->azColl = (char**)pExtra; pExtra += ROUND8(sizeof(char*)*nCol);
93615  p->aiRowLogEst = (LogEst*)pExtra; pExtra += sizeof(LogEst)*(nCol+1);
93616  p->aiColumn = (i16*)pExtra; pExtra += sizeof(i16)*nCol;
93617  p->aSortOrder = (u8*)pExtra;
93618  p->nColumn = nCol;
93619  p->nKeyCol = nCol - 1;
93620  *ppExtra = ((char*)p) + nByte;
93621  }
93622  return p;
93623 }
u8 * aSortOrder
Definition: sqlite3.c:11739
UINT8_TYPE u8
Definition: sqlite3.c:8959
char ** azColl
Definition: sqlite3.c:11740
INT16_TYPE LogEst
Definition: sqlite3.c:9005
#define ROUND8(x)
Definition: sqlite3.c:9070
LogEst * aiRowLogEst
Definition: sqlite3.c:11734
u16 nKeyCol
Definition: sqlite3.c:11744
SQLITE_PRIVATE void * sqlite3DbMallocZero(sqlite3 *, u64)
Definition: sqlite3.c:21149
u16 nColumn
Definition: sqlite3.c:11745
i16 * aiColumn
Definition: sqlite3.c:11733
INT16_TYPE i16
Definition: sqlite3.c:8958
SQLITE_PRIVATE void sqlite3AlterBeginAddColumn ( Parse pParse,
SrcList pSrc 
)

Definition at line 87987 of file sqlite3.c.

References Table::aCol, sqlite3::aDb, Table::addColOffset, Parse::db, sqlite3::mallocFailed, Table::nCol, Table::nRef, Column::pDflt, Parse::pNewTable, Db::pSchema, Table::pSchema, Table::pSelect, sqlite3BeginWriteOperation(), sqlite3ChangeCookie(), sqlite3DbMallocZero(), sqlite3DbStrDup(), sqlite3ErrorMsg(), sqlite3GetVdbe(), sqlite3MPrintf(), sqlite3SchemaToIndex(), sqlite3SrcListDelete(), Column::zColl, Column::zDflt, Column::zName, Table::zName, and Column::zType.

87987  {
87988  Table *pNew;
87989  Table *pTab;
87990  Vdbe *v;
87991  int iDb;
87992  int i;
87993  int nAlloc;
87994  sqlite3 *db = pParse->db;
87995 
87996  /* Look up the table being altered. */
87997  assert( pParse->pNewTable==0 );
87998  assert( sqlite3BtreeHoldsAllMutexes(db) );
87999  if( db->mallocFailed ) goto exit_begin_add_column;
88000  pTab = sqlite3LocateTableItem(pParse, 0, &pSrc->a[0]);
88001  if( !pTab ) goto exit_begin_add_column;
88002 
88003 #ifndef SQLITE_OMIT_VIRTUALTABLE
88004  if( IsVirtual(pTab) ){
88005  sqlite3ErrorMsg(pParse, "virtual tables may not be altered");
88006  goto exit_begin_add_column;
88007  }
88008 #endif
88009 
88010  /* Make sure this is not an attempt to ALTER a view. */
88011  if( pTab->pSelect ){
88012  sqlite3ErrorMsg(pParse, "Cannot add a column to a view");
88013  goto exit_begin_add_column;
88014  }
88015  if( SQLITE_OK!=isSystemTable(pParse, pTab->zName) ){
88016  goto exit_begin_add_column;
88017  }
88018 
88019  assert( pTab->addColOffset>0 );
88020  iDb = sqlite3SchemaToIndex(db, pTab->pSchema);
88021 
88022  /* Put a copy of the Table struct in Parse.pNewTable for the
88023  ** sqlite3AddColumn() function and friends to modify. But modify
88024  ** the name by adding an "sqlite_altertab_" prefix. By adding this
88025  ** prefix, we insure that the name will not collide with an existing
88026  ** table because user table are not allowed to have the "sqlite_"
88027  ** prefix on their name.
88028  */
88029  pNew = (Table*)sqlite3DbMallocZero(db, sizeof(Table));
88030  if( !pNew ) goto exit_begin_add_column;
88031  pParse->pNewTable = pNew;
88032  pNew->nRef = 1;
88033  pNew->nCol = pTab->nCol;
88034  assert( pNew->nCol>0 );
88035  nAlloc = (((pNew->nCol-1)/8)*8)+8;
88036  assert( nAlloc>=pNew->nCol && nAlloc%8==0 && nAlloc-pNew->nCol<8 );
88037  pNew->aCol = (Column*)sqlite3DbMallocZero(db, sizeof(Column)*nAlloc);
88038  pNew->zName = sqlite3MPrintf(db, "sqlite_altertab_%s", pTab->zName);
88039  if( !pNew->aCol || !pNew->zName ){
88040  db->mallocFailed = 1;
88041  goto exit_begin_add_column;
88042  }
88043  memcpy(pNew->aCol, pTab->aCol, sizeof(Column)*pNew->nCol);
88044  for(i=0; i<pNew->nCol; i++){
88045  Column *pCol = &pNew->aCol[i];
88046  pCol->zName = sqlite3DbStrDup(db, pCol->zName);
88047  pCol->zColl = 0;
88048  pCol->zType = 0;
88049  pCol->pDflt = 0;
88050  pCol->zDflt = 0;
88051  }
88052  pNew->pSchema = db->aDb[iDb].pSchema;
88053  pNew->addColOffset = pTab->addColOffset;
88054  pNew->nRef = 1;
88055 
88056  /* Begin a transaction and increment the schema cookie. */
88057  sqlite3BeginWriteOperation(pParse, 0, iDb);
88058  v = sqlite3GetVdbe(pParse);
88059  if( !v ) goto exit_begin_add_column;
88060  sqlite3ChangeCookie(pParse, iDb);
88061 
88062 exit_begin_add_column:
88063  sqlite3SrcListDelete(db, pSrc);
88064  return;
88065 }
Table * pNewTable
Definition: sqlite3.c:12591
char * zType
Definition: sqlite3.c:11345
char * zDflt
Definition: sqlite3.c:11344
u16 nRef
Definition: sqlite3.c:11519
Expr * pDflt
Definition: sqlite3.c:11343
SQLITE_PRIVATE void sqlite3ChangeCookie(Parse *, int)
Definition: sqlite3.c:92266
char * zColl
Definition: sqlite3.c:11346
Column * aCol
Definition: sqlite3.c:11507
struct SrcList::SrcList_item a[1]
Schema * pSchema
Definition: sqlite3.c:11535
Schema * pSchema
Definition: sqlite3.c:10841
int addColOffset
Definition: sqlite3.c:11527
SQLITE_PRIVATE void sqlite3BeginWriteOperation(Parse *, int, int)
Definition: sqlite3.c:94762
SQLITE_PRIVATE Vdbe * sqlite3GetVdbe(Parse *)
Definition: sqlite3.c:108233
Select * pSelect
Definition: sqlite3.c:11509
i16 nCol
Definition: sqlite3.c:11518
SQLITE_PRIVATE int sqlite3SchemaToIndex(sqlite3 *db, Schema *)
Definition: sqlite3.c:106086
SQLITE_PRIVATE char * sqlite3DbStrDup(sqlite3 *, const char *)
Definition: sqlite3.c:21271
SQLITE_PRIVATE void sqlite3ErrorMsg(Parse *, const char *,...)
Definition: sqlite3.c:23615
#define IsVirtual(X)
Definition: sqlite3.c:11563
char * zName
Definition: sqlite3.c:11342
SQLITE_PRIVATE char * sqlite3MPrintf(sqlite3 *, const char *,...)
Definition: sqlite3.c:22275
SQLITE_PRIVATE Table * sqlite3LocateTableItem(Parse *, int isView, struct SrcList_item *)
Definition: sqlite3.c:91194
Db * aDb
Definition: sqlite3.c:10996
SQLITE_PRIVATE void * sqlite3DbMallocZero(sqlite3 *, u64)
Definition: sqlite3.c:21149
u8 mallocFailed
Definition: sqlite3.c:11008
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE void sqlite3SrcListDelete(sqlite3 *, SrcList *)
Definition: sqlite3.c:94481
sqlite3 * db
Definition: sqlite3.c:12500
char * zName
Definition: sqlite3.c:11506

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3AlterFinishAddColumn ( Parse pParse,
Token pColDef 
)

Definition at line 87860 of file sqlite3.c.

References Table::aCol, sqlite3::aDb, Table::addColOffset, Column::colFlags, Parse::db, sqlite3::flags, sqlite3::mallocFailed, Token::n, Table::nCol, Parse::nErr, Column::notNull, Expr::op, Column::pDflt, Table::pFKey, Table::pIndex, Parse::pNewTable, Table::pSchema, sqlite3AuthCheck(), sqlite3DbFree(), sqlite3DbStrNDup(), sqlite3ErrorMsg(), sqlite3FindTable(), sqlite3MinimumFileFormat(), sqlite3NestedParse(), sqlite3SchemaToIndex(), sqlite3ValueFree(), sqlite3ValueFromExpr(), Token::z, Db::zName, and Table::zName.

87860  {
87861  Table *pNew; /* Copy of pParse->pNewTable */
87862  Table *pTab; /* Table being altered */
87863  int iDb; /* Database number */
87864  const char *zDb; /* Database name */
87865  const char *zTab; /* Table name */
87866  char *zCol; /* Null-terminated column definition */
87867  Column *pCol; /* The new column */
87868  Expr *pDflt; /* Default value for the new column */
87869  sqlite3 *db; /* The database connection; */
87870 
87871  db = pParse->db;
87872  if( pParse->nErr || db->mallocFailed ) return;
87873  pNew = pParse->pNewTable;
87874  assert( pNew );
87875 
87876  assert( sqlite3BtreeHoldsAllMutexes(db) );
87877  iDb = sqlite3SchemaToIndex(db, pNew->pSchema);
87878  zDb = db->aDb[iDb].zName;
87879  zTab = &pNew->zName[16]; /* Skip the "sqlite_altertab_" prefix on the name */
87880  pCol = &pNew->aCol[pNew->nCol-1];
87881  pDflt = pCol->pDflt;
87882  pTab = sqlite3FindTable(db, zTab, zDb);
87883  assert( pTab );
87884 
87885 #ifndef SQLITE_OMIT_AUTHORIZATION
87886  /* Invoke the authorization callback. */
87887  if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){
87888  return;
87889  }
87890 #endif
87891 
87892  /* If the default value for the new column was specified with a
87893  ** literal NULL, then set pDflt to 0. This simplifies checking
87894  ** for an SQL NULL default below.
87895  */
87896  if( pDflt && pDflt->op==TK_NULL ){
87897  pDflt = 0;
87898  }
87899 
87900  /* Check that the new column is not specified as PRIMARY KEY or UNIQUE.
87901  ** If there is a NOT NULL constraint, then the default value for the
87902  ** column must not be NULL.
87903  */
87904  if( pCol->colFlags & COLFLAG_PRIMKEY ){
87905  sqlite3ErrorMsg(pParse, "Cannot add a PRIMARY KEY column");
87906  return;
87907  }
87908  if( pNew->pIndex ){
87909  sqlite3ErrorMsg(pParse, "Cannot add a UNIQUE column");
87910  return;
87911  }
87912  if( (db->flags&SQLITE_ForeignKeys) && pNew->pFKey && pDflt ){
87913  sqlite3ErrorMsg(pParse,
87914  "Cannot add a REFERENCES column with non-NULL default value");
87915  return;
87916  }
87917  if( pCol->notNull && !pDflt ){
87918  sqlite3ErrorMsg(pParse,
87919  "Cannot add a NOT NULL column with default value NULL");
87920  return;
87921  }
87922 
87923  /* Ensure the default expression is something that sqlite3ValueFromExpr()
87924  ** can handle (i.e. not CURRENT_TIME etc.)
87925  */
87926  if( pDflt ){
87927  sqlite3_value *pVal = 0;
87928  int rc;
87929  rc = sqlite3ValueFromExpr(db, pDflt, SQLITE_UTF8, SQLITE_AFF_NONE, &pVal);
87930  assert( rc==SQLITE_OK || rc==SQLITE_NOMEM );
87931  if( rc!=SQLITE_OK ){
87932  db->mallocFailed = 1;
87933  return;
87934  }
87935  if( !pVal ){
87936  sqlite3ErrorMsg(pParse, "Cannot add a column with non-constant default");
87937  return;
87938  }
87939  sqlite3ValueFree(pVal);
87940  }
87941 
87942  /* Modify the CREATE TABLE statement. */
87943  zCol = sqlite3DbStrNDup(db, (char*)pColDef->z, pColDef->n);
87944  if( zCol ){
87945  char *zEnd = &zCol[pColDef->n-1];
87946  int savedDbFlags = db->flags;
87947  while( zEnd>zCol && (*zEnd==';' || sqlite3Isspace(*zEnd)) ){
87948  *zEnd-- = '\0';
87949  }
87950  db->flags |= SQLITE_PreferBuiltin;
87951  sqlite3NestedParse(pParse,
87952  "UPDATE \"%w\".%s SET "
87953  "sql = substr(sql,1,%d) || ', ' || %Q || substr(sql,%d) "
87954  "WHERE type = 'table' AND name = %Q",
87955  zDb, SCHEMA_TABLE(iDb), pNew->addColOffset, zCol, pNew->addColOffset+1,
87956  zTab
87957  );
87958  sqlite3DbFree(db, zCol);
87959  db->flags = savedDbFlags;
87960  }
87961 
87962  /* If the default value of the new column is NULL, then set the file
87963  ** format to 2. If the default value of the new column is not NULL,
87964  ** the file format becomes 3.
87965  */
87966  sqlite3MinimumFileFormat(pParse, iDb, pDflt ? 3 : 2);
87967 
87968  /* Reload the schema of the modified table. */
87969  reloadTableSchema(pParse, pTab, pTab->zName);
87970 }
u8 notNull
Definition: sqlite3.c:11347
Index * pIndex
Definition: sqlite3.c:11508
Table * pNewTable
Definition: sqlite3.c:12591
unsigned int n
Definition: sqlite3.c:11799
#define SQLITE_NOMEM
Definition: sqlite3.c:619
Expr * pDflt
Definition: sqlite3.c:11343
SQLITE_PRIVATE Table * sqlite3FindTable(sqlite3 *, const char *, const char *)
Definition: sqlite3.c:91119
u8 op
Definition: sqlite3.c:11926
Column * aCol
Definition: sqlite3.c:11507
#define SQLITE_PreferBuiltin
Definition: sqlite3.c:11139
#define sqlite3Isspace(x)
Definition: sqlite3.c:12960
SQLITE_PRIVATE void sqlite3MinimumFileFormat(Parse *, int, int)
Definition: sqlite3.c:87830
#define SQLITE_UTF8
Definition: sqlite3.c:4463
Schema * pSchema
Definition: sqlite3.c:11535
char * zName
Definition: sqlite3.c:10838
SQLITE_PRIVATE int sqlite3AuthCheck(Parse *, int, const char *, const char *, const char *)
Definition: sqlite3.c:90746
int addColOffset
Definition: sqlite3.c:11527
i16 nCol
Definition: sqlite3.c:11518
SQLITE_PRIVATE int sqlite3SchemaToIndex(sqlite3 *db, Schema *)
Definition: sqlite3.c:106086
SQLITE_PRIVATE void sqlite3ErrorMsg(Parse *, const char *,...)
Definition: sqlite3.c:23615
#define TK_NULL
Definition: sqlite3.c:8732
FKey * pFKey
Definition: sqlite3.c:11510
SQLITE_PRIVATE char * sqlite3DbStrNDup(sqlite3 *, const char *, u64)
Definition: sqlite3.c:21285
const char * z
Definition: sqlite3.c:11798
SQLITE_PRIVATE int sqlite3ValueFromExpr(sqlite3 *, Expr *, u8, u8, sqlite3_value **)
Definition: sqlite3.c:64507
#define SCHEMA_TABLE(x)
Definition: sqlite3.c:9192
#define SQLITE_ForeignKeys
Definition: sqlite3.c:11137
#define COLFLAG_PRIMKEY
Definition: sqlite3.c:11355
Db * aDb
Definition: sqlite3.c:10996
#define SQLITE_AFF_NONE
Definition: sqlite3.c:11395
u8 mallocFailed
Definition: sqlite3.c:11008
#define SQLITE_OK
Definition: sqlite3.c:611
#define SQLITE_ALTER_TABLE
Definition: sqlite3.c:2868
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
SQLITE_PRIVATE void sqlite3ValueFree(sqlite3_value *)
Definition: sqlite3.c:64792
SQLITE_PRIVATE void sqlite3NestedParse(Parse *, const char *,...)
Definition: sqlite3.c:91071
sqlite3 * db
Definition: sqlite3.c:12500
int flags
Definition: sqlite3.c:10998
char * zName
Definition: sqlite3.c:11506
int nErr
Definition: sqlite3.c:12515
u8 colFlags
Definition: sqlite3.c:11350

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3AlterFunctions ( void  )

Definition at line 87465 of file sqlite3.c.

References sqlite3FuncDefInsert(), and sqlite3GlobalFunctions.

Referenced by sqlite3RegisterGlobalFunctions().

87465  {
87466  static SQLITE_WSD FuncDef aAlterTableFuncs[] = {
87467  FUNCTION(sqlite_rename_table, 2, 0, 0, renameTableFunc),
87468 #ifndef SQLITE_OMIT_TRIGGER
87469  FUNCTION(sqlite_rename_trigger, 2, 0, 0, renameTriggerFunc),
87470 #endif
87471 #ifndef SQLITE_OMIT_FOREIGN_KEY
87472  FUNCTION(sqlite_rename_parent, 3, 0, 0, renameParentFunc),
87473 #endif
87474  };
87475  int i;
87477  FuncDef *aFunc = (FuncDef*)&GLOBAL(FuncDef, aAlterTableFuncs);
87478 
87479  for(i=0; i<ArraySize(aAlterTableFuncs); i++){
87480  sqlite3FuncDefInsert(pHash, &aFunc[i]);
87481  }
87482 }
SQLITE_PRIVATE void sqlite3FuncDefInsert(FuncDefHash *, FuncDef *)
Definition: sqlite3.c:95417
#define GLOBAL(t, v)
Definition: sqlite3.c:9237
#define ArraySize(X)
Definition: sqlite3.c:9198
SQLITE_PRIVATE SQLITE_WSD FuncDefHash sqlite3GlobalFunctions
Definition: sqlite3.c:14011
#define SQLITE_WSD
Definition: sqlite3.c:9236
#define FUNCTION(zName, nArg, iArg, bNC, xFunc)
Definition: sqlite3.c:11281

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3AlterRenameTable ( Parse pParse,
SrcList pSrc,
Token pName 
)

Definition at line 87629 of file sqlite3.c.

References sqlite3::aDb, Parse::db, sqlite3::flags, sqlite3::mallocFailed, Parse::nMem, FKey::pFrom, sqlite3_vtab::pModule, FKey::pNextTo, Table::pSchema, Table::pSelect, VTable::pVtab, sqlite3AuthCheck(), sqlite3BeginWriteOperation(), sqlite3ChangeCookie(), sqlite3CheckObjectName(), sqlite3DbFree(), sqlite3ErrorMsg(), sqlite3FindIndex(), sqlite3FindTable(), sqlite3FkReferences(), sqlite3GetVdbe(), sqlite3GetVTable(), sqlite3MayAbort(), sqlite3NameFromToken(), sqlite3NestedParse(), sqlite3SchemaToIndex(), sqlite3SrcListDelete(), sqlite3Utf8CharLen(), sqlite3VdbeAddOp4(), sqlite3ViewGetColumnNames(), sqlite3_module::xRename, Db::zName, and Table::zName.

87633  {
87634  int iDb; /* Database that contains the table */
87635  char *zDb; /* Name of database iDb */
87636  Table *pTab; /* Table being renamed */
87637  char *zName = 0; /* NULL-terminated version of pName */
87638  sqlite3 *db = pParse->db; /* Database connection */
87639  int nTabName; /* Number of UTF-8 characters in zTabName */
87640  const char *zTabName; /* Original name of the table */
87641  Vdbe *v;
87642 #ifndef SQLITE_OMIT_TRIGGER
87643  char *zWhere = 0; /* Where clause to locate temp triggers */
87644 #endif
87645  VTable *pVTab = 0; /* Non-zero if this is a v-tab with an xRename() */
87646  int savedDbFlags; /* Saved value of db->flags */
87647 
87648  savedDbFlags = db->flags;
87649  if( NEVER(db->mallocFailed) ) goto exit_rename_table;
87650  assert( pSrc->nSrc==1 );
87651  assert( sqlite3BtreeHoldsAllMutexes(pParse->db) );
87652 
87653  pTab = sqlite3LocateTableItem(pParse, 0, &pSrc->a[0]);
87654  if( !pTab ) goto exit_rename_table;
87655  iDb = sqlite3SchemaToIndex(pParse->db, pTab->pSchema);
87656  zDb = db->aDb[iDb].zName;
87657  db->flags |= SQLITE_PreferBuiltin;
87658 
87659  /* Get a NULL terminated version of the new table name. */
87660  zName = sqlite3NameFromToken(db, pName);
87661  if( !zName ) goto exit_rename_table;
87662 
87663  /* Check that a table or index named 'zName' does not already exist
87664  ** in database iDb. If so, this is an error.
87665  */
87666  if( sqlite3FindTable(db, zName, zDb) || sqlite3FindIndex(db, zName, zDb) ){
87667  sqlite3ErrorMsg(pParse,
87668  "there is already another table or index with this name: %s", zName);
87669  goto exit_rename_table;
87670  }
87671 
87672  /* Make sure it is not a system table being altered, or a reserved name
87673  ** that the table is being renamed to.
87674  */
87675  if( SQLITE_OK!=isSystemTable(pParse, pTab->zName) ){
87676  goto exit_rename_table;
87677  }
87678  if( SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){ goto
87679  exit_rename_table;
87680  }
87681 
87682 #ifndef SQLITE_OMIT_VIEW
87683  if( pTab->pSelect ){
87684  sqlite3ErrorMsg(pParse, "view %s may not be altered", pTab->zName);
87685  goto exit_rename_table;
87686  }
87687 #endif
87688 
87689 #ifndef SQLITE_OMIT_AUTHORIZATION
87690  /* Invoke the authorization callback. */
87691  if( sqlite3AuthCheck(pParse, SQLITE_ALTER_TABLE, zDb, pTab->zName, 0) ){
87692  goto exit_rename_table;
87693  }
87694 #endif
87695 
87696 #ifndef SQLITE_OMIT_VIRTUALTABLE
87697  if( sqlite3ViewGetColumnNames(pParse, pTab) ){
87698  goto exit_rename_table;
87699  }
87700  if( IsVirtual(pTab) ){
87701  pVTab = sqlite3GetVTable(db, pTab);
87702  if( pVTab->pVtab->pModule->xRename==0 ){
87703  pVTab = 0;
87704  }
87705  }
87706 #endif
87707 
87708  /* Begin a transaction for database iDb.
87709  ** Then modify the schema cookie (since the ALTER TABLE modifies the
87710  ** schema). Open a statement transaction if the table is a virtual
87711  ** table.
87712  */
87713  v = sqlite3GetVdbe(pParse);
87714  if( v==0 ){
87715  goto exit_rename_table;
87716  }
87717  sqlite3BeginWriteOperation(pParse, pVTab!=0, iDb);
87718  sqlite3ChangeCookie(pParse, iDb);
87719 
87720  /* If this is a virtual table, invoke the xRename() function if
87721  ** one is defined. The xRename() callback will modify the names
87722  ** of any resources used by the v-table implementation (including other
87723  ** SQLite tables) that are identified by the name of the virtual table.
87724  */
87725 #ifndef SQLITE_OMIT_VIRTUALTABLE
87726  if( pVTab ){
87727  int i = ++pParse->nMem;
87728  sqlite3VdbeAddOp4(v, OP_String8, 0, i, 0, zName, 0);
87729  sqlite3VdbeAddOp4(v, OP_VRename, i, 0, 0,(const char*)pVTab, P4_VTAB);
87730  sqlite3MayAbort(pParse);
87731  }
87732 #endif
87733 
87734  /* figure out how many UTF-8 characters are in zName */
87735  zTabName = pTab->zName;
87736  nTabName = sqlite3Utf8CharLen(zTabName, -1);
87737 
87738 #if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
87739  if( db->flags&SQLITE_ForeignKeys ){
87740  /* If foreign-key support is enabled, rewrite the CREATE TABLE
87741  ** statements corresponding to all child tables of foreign key constraints
87742  ** for which the renamed table is the parent table. */
87743  if( (zWhere=whereForeignKeys(pParse, pTab))!=0 ){
87744  sqlite3NestedParse(pParse,
87745  "UPDATE \"%w\".%s SET "
87746  "sql = sqlite_rename_parent(sql, %Q, %Q) "
87747  "WHERE %s;", zDb, SCHEMA_TABLE(iDb), zTabName, zName, zWhere);
87748  sqlite3DbFree(db, zWhere);
87749  }
87750  }
87751 #endif
87752 
87753  /* Modify the sqlite_master table to use the new table name. */
87754  sqlite3NestedParse(pParse,
87755  "UPDATE %Q.%s SET "
87756 #ifdef SQLITE_OMIT_TRIGGER
87757  "sql = sqlite_rename_table(sql, %Q), "
87758 #else
87759  "sql = CASE "
87760  "WHEN type = 'trigger' THEN sqlite_rename_trigger(sql, %Q)"
87761  "ELSE sqlite_rename_table(sql, %Q) END, "
87762 #endif
87763  "tbl_name = %Q, "
87764  "name = CASE "
87765  "WHEN type='table' THEN %Q "
87766  "WHEN name LIKE 'sqlite_autoindex%%' AND type='index' THEN "
87767  "'sqlite_autoindex_' || %Q || substr(name,%d+18) "
87768  "ELSE name END "
87769  "WHERE tbl_name=%Q COLLATE nocase AND "
87770  "(type='table' OR type='index' OR type='trigger');",
87771  zDb, SCHEMA_TABLE(iDb), zName, zName, zName,
87772 #ifndef SQLITE_OMIT_TRIGGER
87773  zName,
87774 #endif
87775  zName, nTabName, zTabName
87776  );
87777 
87778 #ifndef SQLITE_OMIT_AUTOINCREMENT
87779  /* If the sqlite_sequence table exists in this database, then update
87780  ** it with the new table name.
87781  */
87782  if( sqlite3FindTable(db, "sqlite_sequence", zDb) ){
87783  sqlite3NestedParse(pParse,
87784  "UPDATE \"%w\".sqlite_sequence set name = %Q WHERE name = %Q",
87785  zDb, zName, pTab->zName);
87786  }
87787 #endif
87788 
87789 #ifndef SQLITE_OMIT_TRIGGER
87790  /* If there are TEMP triggers on this table, modify the sqlite_temp_master
87791  ** table. Don't do this if the table being ALTERed is itself located in
87792  ** the temp database.
87793  */
87794  if( (zWhere=whereTempTriggers(pParse, pTab))!=0 ){
87795  sqlite3NestedParse(pParse,
87796  "UPDATE sqlite_temp_master SET "
87797  "sql = sqlite_rename_trigger(sql, %Q), "
87798  "tbl_name = %Q "
87799  "WHERE %s;", zName, zName, zWhere);
87800  sqlite3DbFree(db, zWhere);
87801  }
87802 #endif
87803 
87804 #if !defined(SQLITE_OMIT_FOREIGN_KEY) && !defined(SQLITE_OMIT_TRIGGER)
87805  if( db->flags&SQLITE_ForeignKeys ){
87806  FKey *p;
87807  for(p=sqlite3FkReferences(pTab); p; p=p->pNextTo){
87808  Table *pFrom = p->pFrom;
87809  if( pFrom!=pTab ){
87810  reloadTableSchema(pParse, p->pFrom, pFrom->zName);
87811  }
87812  }
87813  }
87814 #endif
87815 
87816  /* Drop and reload the internal table schema. */
87817  reloadTableSchema(pParse, pTab, zName);
87818 
87819 exit_rename_table:
87820  sqlite3SrcListDelete(db, pSrc);
87821  sqlite3DbFree(db, zName);
87822  db->flags = savedDbFlags;
87823 }
SQLITE_PRIVATE int sqlite3Utf8CharLen(const char *pData, int nByte)
Definition: sqlite3.c:23290
SQLITE_PRIVATE Table * sqlite3FindTable(sqlite3 *, const char *, const char *)
Definition: sqlite3.c:91119
SQLITE_PRIVATE void sqlite3ChangeCookie(Parse *, int)
Definition: sqlite3.c:92266
const sqlite3_module * pModule
Definition: sqlite3.c:5895
#define NEVER(X)
Definition: sqlite3.c:8509
sqlite3_vtab * pVtab
Definition: sqlite3.c:11468
struct SrcList::SrcList_item a[1]
#define SQLITE_PreferBuiltin
Definition: sqlite3.c:11139
SQLITE_PRIVATE FKey * sqlite3FkReferences(Table *)
Definition: sqlite3.c:98897
SQLITE_PRIVATE int sqlite3VdbeAddOp4(Vdbe *, int, int, int, int, const char *zP4, int)
Definition: sqlite3.c:65024
Schema * pSchema
Definition: sqlite3.c:11535
SQLITE_PRIVATE char * sqlite3NameFromToken(sqlite3 *, Token *)
Definition: sqlite3.c:91488
FKey * pNextTo
Definition: sqlite3.c:11605
char * zName
Definition: sqlite3.c:10838
SQLITE_PRIVATE int sqlite3AuthCheck(Parse *, int, const char *, const char *, const char *)
Definition: sqlite3.c:90746
SQLITE_PRIVATE void sqlite3BeginWriteOperation(Parse *, int, int)
Definition: sqlite3.c:94762
SQLITE_PRIVATE Vdbe * sqlite3GetVdbe(Parse *)
Definition: sqlite3.c:108233
Select * pSelect
Definition: sqlite3.c:11509
SQLITE_PRIVATE void sqlite3MayAbort(Parse *)
Definition: sqlite3.c:94797
SQLITE_PRIVATE VTable * sqlite3GetVTable(sqlite3 *, Table *)
Definition: sqlite3.c:114684
SQLITE_PRIVATE int sqlite3SchemaToIndex(sqlite3 *db, Schema *)
Definition: sqlite3.c:106086
SQLITE_PRIVATE Index * sqlite3FindIndex(sqlite3 *, const char *, const char *)
Definition: sqlite3.c:91222
SQLITE_PRIVATE void sqlite3ErrorMsg(Parse *, const char *,...)
Definition: sqlite3.c:23615
#define IsVirtual(X)
Definition: sqlite3.c:11563
Table * pFrom
Definition: sqlite3.c:11602
int nSrc
Definition: sqlite3.c:12144
#define SCHEMA_TABLE(x)
Definition: sqlite3.c:9192
#define P4_VTAB
Definition: sqlite3.c:9709
#define OP_VRename
Definition: sqlite3.c:9910
SQLITE_PRIVATE Table * sqlite3LocateTableItem(Parse *, int isView, struct SrcList_item *)
Definition: sqlite3.c:91194
#define SQLITE_ForeignKeys
Definition: sqlite3.c:11137
Db * aDb
Definition: sqlite3.c:10996
int(* xRename)(sqlite3_vtab *pVtab, const char *zNew)
Definition: sqlite3.c:5720
u8 mallocFailed
Definition: sqlite3.c:11008
#define SQLITE_OK
Definition: sqlite3.c:611
#define SQLITE_ALTER_TABLE
Definition: sqlite3.c:2868
SQLITE_PRIVATE void sqlite3SrcListDelete(sqlite3 *, SrcList *)
Definition: sqlite3.c:94481
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
#define OP_String8
Definition: sqlite3.c:9855
SQLITE_PRIVATE void sqlite3NestedParse(Parse *, const char *,...)
Definition: sqlite3.c:91071
sqlite3 * db
Definition: sqlite3.c:12500
int flags
Definition: sqlite3.c:10998
char * zName
Definition: sqlite3.c:11506
SQLITE_PRIVATE int sqlite3ViewGetColumnNames(Parse *, Table *)
Definition: sqlite3.c:92912
int nMem
Definition: sqlite3.c:12517
SQLITE_PRIVATE int sqlite3CheckObjectName(Parse *, const char *)
Definition: sqlite3.c:91599

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3AnalysisLoad ( sqlite3 db,
int  iDB 
)

Definition at line 89900 of file sqlite3.c.

References sqlite3::aDb, analysisInfo::db, Schema::idxHash, sqlite3::mallocFailed, Db::pSchema, sqlite3_exec(), sqlite3DbFree(), sqlite3FindTable(), sqlite3MPrintf(), analysisInfo::zDatabase, and Db::zName.

Referenced by sqlite3VdbeExec().

89900  {
89901  analysisInfo sInfo;
89902  HashElem *i;
89903  char *zSql;
89904  int rc;
89905 
89906  assert( iDb>=0 && iDb<db->nDb );
89907  assert( db->aDb[iDb].pBt!=0 );
89908 
89909  /* Clear any prior statistics */
89910  assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
89911  for(i=sqliteHashFirst(&db->aDb[iDb].pSchema->idxHash);i;i=sqliteHashNext(i)){
89912  Index *pIdx = sqliteHashData(i);
89913  sqlite3DefaultRowEst(pIdx);
89914 #ifdef SQLITE_ENABLE_STAT3_OR_STAT4
89915  sqlite3DeleteIndexSamples(db, pIdx);
89916  pIdx->aSample = 0;
89917 #endif
89918  }
89919 
89920  /* Check to make sure the sqlite_stat1 table exists */
89921  sInfo.db = db;
89922  sInfo.zDatabase = db->aDb[iDb].zName;
89923  if( sqlite3FindTable(db, "sqlite_stat1", sInfo.zDatabase)==0 ){
89924  return SQLITE_ERROR;
89925  }
89926 
89927  /* Load new statistics out of the sqlite_stat1 table */
89928  zSql = sqlite3MPrintf(db,
89929  "SELECT tbl,idx,stat FROM %Q.sqlite_stat1", sInfo.zDatabase);
89930  if( zSql==0 ){
89931  rc = SQLITE_NOMEM;
89932  }else{
89933  rc = sqlite3_exec(db, zSql, analysisLoader, &sInfo, 0);
89934  sqlite3DbFree(db, zSql);
89935  }
89936 
89937 
89938  /* Load the statistics from the sqlite_stat4 table. */
89939 #ifdef SQLITE_ENABLE_STAT3_OR_STAT4
89940  if( rc==SQLITE_OK && OptimizationEnabled(db, SQLITE_Stat34) ){
89941  int lookasideEnabled = db->lookaside.bEnabled;
89942  db->lookaside.bEnabled = 0;
89943  rc = loadStat4(db, sInfo.zDatabase);
89944  db->lookaside.bEnabled = lookasideEnabled;
89945  }
89946  for(i=sqliteHashFirst(&db->aDb[iDb].pSchema->idxHash);i;i=sqliteHashNext(i)){
89947  Index *pIdx = sqliteHashData(i);
89948  sqlite3_free(pIdx->aiRowEst);
89949  pIdx->aiRowEst = 0;
89950  }
89951 #endif
89952 
89953  if( rc==SQLITE_NOMEM ){
89954  db->mallocFailed = 1;
89955  }
89956  return rc;
89957 }
#define SQLITE_NOMEM
Definition: sqlite3.c:619
SQLITE_PRIVATE Table * sqlite3FindTable(sqlite3 *, const char *, const char *)
Definition: sqlite3.c:91119
SQLITE_PRIVATE void sqlite3DefaultRowEst(Index *)
Definition: sqlite3.c:94140
#define SQLITE_Stat34
Definition: sqlite3.c:11164
Hash idxHash
Definition: sqlite3.c:10865
#define SQLITE_ERROR
Definition: sqlite3.c:613
char * zName
Definition: sqlite3.c:10838
sqlite3 * db
Definition: sqlite3.c:89484
Schema * pSchema
Definition: sqlite3.c:10841
#define sqliteHashNext(E)
Definition: sqlite3.c:8616
#define OptimizationEnabled(db, mask)
Definition: sqlite3.c:11172
const char * zDatabase
Definition: sqlite3.c:89485
Btree * pBt
Definition: sqlite3.c:10839
#define sqliteHashData(E)
Definition: sqlite3.c:8617
SQLITE_PRIVATE char * sqlite3MPrintf(sqlite3 *, const char *,...)
Definition: sqlite3.c:22275
Db * aDb
Definition: sqlite3.c:10996
#define sqliteHashFirst(H)
Definition: sqlite3.c:8615
u8 mallocFailed
Definition: sqlite3.c:11008
SQLITE_API int SQLITE_STDCALL sqlite3_exec(sqlite3 *, const char *sql, int(*callback)(void *, int, char **, char **), void *, char **errmsg)
Definition: sqlite3.c:101728
Lookaside lookaside
Definition: sqlite3.c:11056
SQLITE_PRIVATE void sqlite3DeleteIndexSamples(sqlite3 *, Index *)
Definition: sqlite3.c:89622
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
u8 bEnabled
Definition: sqlite3.c:10926
SQLITE_API void SQLITE_STDCALL sqlite3_free(void *)
Definition: sqlite3.c:21010

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3Analyze ( Parse pParse,
Token pName1,
Token pName2 
)

Definition at line 89418 of file sqlite3.c.

References sqlite3::aDb, Parse::db, Token::n, sqlite3::nDb, Index::pTable, sqlite3DbFree(), sqlite3FindDb(), sqlite3FindIndex(), sqlite3GetVdbe(), sqlite3LocateTable(), sqlite3NameFromToken(), sqlite3ReadSchema(), sqlite3TwoPartName(), sqlite3VdbeAddOp0(), and Db::zName.

89418  {
89419  sqlite3 *db = pParse->db;
89420  int iDb;
89421  int i;
89422  char *z, *zDb;
89423  Table *pTab;
89424  Index *pIdx;
89425  Token *pTableName;
89426  Vdbe *v;
89427 
89428  /* Read the database schema. If an error occurs, leave an error message
89429  ** and code in pParse and return NULL. */
89430  assert( sqlite3BtreeHoldsAllMutexes(pParse->db) );
89431  if( SQLITE_OK!=sqlite3ReadSchema(pParse) ){
89432  return;
89433  }
89434 
89435  assert( pName2!=0 || pName1==0 );
89436  if( pName1==0 ){
89437  /* Form 1: Analyze everything */
89438  for(i=0; i<db->nDb; i++){
89439  if( i==1 ) continue; /* Do not analyze the TEMP database */
89440  analyzeDatabase(pParse, i);
89441  }
89442  }else if( pName2->n==0 ){
89443  /* Form 2: Analyze the database or table named */
89444  iDb = sqlite3FindDb(db, pName1);
89445  if( iDb>=0 ){
89446  analyzeDatabase(pParse, iDb);
89447  }else{
89448  z = sqlite3NameFromToken(db, pName1);
89449  if( z ){
89450  if( (pIdx = sqlite3FindIndex(db, z, 0))!=0 ){
89451  analyzeTable(pParse, pIdx->pTable, pIdx);
89452  }else if( (pTab = sqlite3LocateTable(pParse, 0, z, 0))!=0 ){
89453  analyzeTable(pParse, pTab, 0);
89454  }
89455  sqlite3DbFree(db, z);
89456  }
89457  }
89458  }else{
89459  /* Form 3: Analyze the fully qualified table name */
89460  iDb = sqlite3TwoPartName(pParse, pName1, pName2, &pTableName);
89461  if( iDb>=0 ){
89462  zDb = db->aDb[iDb].zName;
89463  z = sqlite3NameFromToken(db, pTableName);
89464  if( z ){
89465  if( (pIdx = sqlite3FindIndex(db, z, zDb))!=0 ){
89466  analyzeTable(pParse, pIdx->pTable, pIdx);
89467  }else if( (pTab = sqlite3LocateTable(pParse, 0, z, zDb))!=0 ){
89468  analyzeTable(pParse, pTab, 0);
89469  }
89470  sqlite3DbFree(db, z);
89471  }
89472  }
89473  }
89474  v = sqlite3GetVdbe(pParse);
89475  if( v ) sqlite3VdbeAddOp0(v, OP_Expire);
89476 }
#define OP_Expire
Definition: sqlite3.c:9902
unsigned int n
Definition: sqlite3.c:11799
SQLITE_PRIVATE int sqlite3ReadSchema(Parse *pParse)
Definition: sqlite3.c:106017
SQLITE_PRIVATE char * sqlite3NameFromToken(sqlite3 *, Token *)
Definition: sqlite3.c:91488
int nDb
Definition: sqlite3.c:10997
char * zName
Definition: sqlite3.c:10838
SQLITE_PRIVATE int sqlite3TwoPartName(Parse *, Token *, Token *, Token **)
Definition: sqlite3.c:91564
SQLITE_PRIVATE Vdbe * sqlite3GetVdbe(Parse *)
Definition: sqlite3.c:108233
SQLITE_PRIVATE Index * sqlite3FindIndex(sqlite3 *, const char *, const char *)
Definition: sqlite3.c:91222
Table * pTable
Definition: sqlite3.c:11735
SQLITE_PRIVATE int sqlite3FindDb(sqlite3 *, Token *)
Definition: sqlite3.c:91539
SQLITE_PRIVATE Table * sqlite3LocateTable(Parse *, int isView, const char *, const char *)
Definition: sqlite3.c:91152
Db * aDb
Definition: sqlite3.c:10996
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
sqlite3 * db
Definition: sqlite3.c:12500
SQLITE_PRIVATE int sqlite3VdbeAddOp0(Vdbe *, int)
Definition: sqlite3.c:65010

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3ApiExit ( sqlite3 db,
int  rc 
)

Definition at line 21337 of file sqlite3.c.

References sqlite3::errMask, and sqlite3::mallocFailed.

Referenced by sqlite3_blob_open(), sqlite3_blob_reopen(), sqlite3_complete16(), sqlite3_create_collation16(), sqlite3_create_collation_v2(), sqlite3_create_function16(), sqlite3_create_function_v2(), sqlite3_declare_vtab(), sqlite3_exec(), sqlite3_finalize(), sqlite3_load_extension(), sqlite3_open16(), sqlite3_overload_function(), sqlite3_reset(), sqlite3_step(), sqlite3_table_column_metadata(), and sqlite3_wal_checkpoint_v2().

21337  {
21338  /* If the db handle is not NULL, then we must hold the connection handle
21339  ** mutex here. Otherwise the read (and possible write) of db->mallocFailed
21340  ** is unsafe, as is the call to sqlite3Error().
21341  */
21342  assert( !db || sqlite3_mutex_held(db->mutex) );
21343  if( db==0 ) return rc & 0xff;
21344  if( db->mallocFailed || rc==SQLITE_IOERR_NOMEM ){
21345  return apiOomError(db);
21346  }
21347  return rc & db->errMask;
21348 }
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
int errMask
Definition: sqlite3.c:11003
#define SQLITE_IOERR_NOMEM
Definition: sqlite3.c:672
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
u8 mallocFailed
Definition: sqlite3.c:11008
SQLITE_PRIVATE void sqlite3AppendChar ( StrAccum p,
int  N,
char  c 
)

Definition at line 22150 of file sqlite3.c.

References StrAccum::nAlloc, StrAccum::nChar, and StrAccum::zText.

Referenced by sqlite3VXPrintf().

22150  {
22151  testcase( p->nChar + (i64)N > 0x7fffffff );
22152  if( p->nChar+(i64)N >= p->nAlloc && (N = sqlite3StrAccumEnlarge(p, N))<=0 ){
22153  return;
22154  }
22155  while( (N--)>0 ) p->zText[p->nChar++] = c;
22156 }
int nChar
Definition: sqlite3.c:12752
char * zText
Definition: sqlite3.c:12751
#define testcase(X)
Definition: sqlite3.c:8458
int nAlloc
Definition: sqlite3.c:12753
sqlite_int64 i64
Definition: sqlite3.c:8954
SQLITE_PRIVATE void * sqlite3ArrayAllocate ( sqlite3 db,
void *  pArray,
int  szEntry,
int *  pnEntry,
int *  pIdx 
)

Definition at line 94249 of file sqlite3.c.

References sqlite3DbRealloc().

94255  {
94256  char *z;
94257  int n = *pnEntry;
94258  if( (n & (n-1))==0 ){
94259  int sz = (n==0) ? 1 : 2*n;
94260  void *pNew = sqlite3DbRealloc(db, pArray, sz*szEntry);
94261  if( pNew==0 ){
94262  *pIdx = -1;
94263  return pArray;
94264  }
94265  pArray = pNew;
94266  }
94267  z = (char*)pArray;
94268  memset(&z[n * szEntry], 0, szEntry);
94269  *pIdx = n;
94270  ++*pnEntry;
94271  return pArray;
94272 }
SQLITE_PRIVATE void * sqlite3DbRealloc(sqlite3 *, void *, u64)
Definition: sqlite3.c:21219

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3AtoF ( const char *  z,
double *  pResult,
int  length,
u8  enc 
)

Definition at line 23738 of file sqlite3.c.

Referenced by sqlite3VdbeRealValue().

23738  {
23739 #ifndef SQLITE_OMIT_FLOATING_POINT
23740  int incr;
23741  const char *zEnd = z + length;
23742  /* sign * significand * (10 ^ (esign * exponent)) */
23743  int sign = 1; /* sign of significand */
23744  i64 s = 0; /* significand */
23745  int d = 0; /* adjust exponent for shifting decimal point */
23746  int esign = 1; /* sign of exponent */
23747  int e = 0; /* exponent */
23748  int eValid = 1; /* True exponent is either not used or is well-formed */
23749  double result;
23750  int nDigits = 0;
23751  int nonNum = 0;
23752 
23753  assert( enc==SQLITE_UTF8 || enc==SQLITE_UTF16LE || enc==SQLITE_UTF16BE );
23754  *pResult = 0.0; /* Default return value, in case of an error */
23755 
23756  if( enc==SQLITE_UTF8 ){
23757  incr = 1;
23758  }else{
23759  int i;
23760  incr = 2;
23761  assert( SQLITE_UTF16LE==2 && SQLITE_UTF16BE==3 );
23762  for(i=3-enc; i<length && z[i]==0; i+=2){}
23763  nonNum = i<length;
23764  zEnd = z+i+enc-3;
23765  z += (enc&1);
23766  }
23767 
23768  /* skip leading spaces */
23769  while( z<zEnd && sqlite3Isspace(*z) ) z+=incr;
23770  if( z>=zEnd ) return 0;
23771 
23772  /* get sign of significand */
23773  if( *z=='-' ){
23774  sign = -1;
23775  z+=incr;
23776  }else if( *z=='+' ){
23777  z+=incr;
23778  }
23779 
23780  /* skip leading zeroes */
23781  while( z<zEnd && z[0]=='0' ) z+=incr, nDigits++;
23782 
23783  /* copy max significant digits to significand */
23784  while( z<zEnd && sqlite3Isdigit(*z) && s<((LARGEST_INT64-9)/10) ){
23785  s = s*10 + (*z - '0');
23786  z+=incr, nDigits++;
23787  }
23788 
23789  /* skip non-significant significand digits
23790  ** (increase exponent by d to shift decimal left) */
23791  while( z<zEnd && sqlite3Isdigit(*z) ) z+=incr, nDigits++, d++;
23792  if( z>=zEnd ) goto do_atof_calc;
23793 
23794  /* if decimal point is present */
23795  if( *z=='.' ){
23796  z+=incr;
23797  /* copy digits from after decimal to significand
23798  ** (decrease exponent by d to shift decimal right) */
23799  while( z<zEnd && sqlite3Isdigit(*z) && s<((LARGEST_INT64-9)/10) ){
23800  s = s*10 + (*z - '0');
23801  z+=incr, nDigits++, d--;
23802  }
23803  /* skip non-significant digits */
23804  while( z<zEnd && sqlite3Isdigit(*z) ) z+=incr, nDigits++;
23805  }
23806  if( z>=zEnd ) goto do_atof_calc;
23807 
23808  /* if exponent is present */
23809  if( *z=='e' || *z=='E' ){
23810  z+=incr;
23811  eValid = 0;
23812  if( z>=zEnd ) goto do_atof_calc;
23813  /* get sign of exponent */
23814  if( *z=='-' ){
23815  esign = -1;
23816  z+=incr;
23817  }else if( *z=='+' ){
23818  z+=incr;
23819  }
23820  /* copy digits to exponent */
23821  while( z<zEnd && sqlite3Isdigit(*z) ){
23822  e = e<10000 ? (e*10 + (*z - '0')) : 10000;
23823  z+=incr;
23824  eValid = 1;
23825  }
23826  }
23827 
23828  /* skip trailing spaces */
23829  if( nDigits && eValid ){
23830  while( z<zEnd && sqlite3Isspace(*z) ) z+=incr;
23831  }
23832 
23833 do_atof_calc:
23834  /* adjust exponent by d, and update sign */
23835  e = (e*esign) + d;
23836  if( e<0 ) {
23837  esign = -1;
23838  e *= -1;
23839  } else {
23840  esign = 1;
23841  }
23842 
23843  /* if 0 significand */
23844  if( !s ) {
23845  /* In the IEEE 754 standard, zero is signed.
23846  ** Add the sign if we've seen at least one digit */
23847  result = (sign<0 && nDigits) ? -(double)0 : (double)0;
23848  } else {
23849  /* attempt to reduce exponent */
23850  if( esign>0 ){
23851  while( s<(LARGEST_INT64/10) && e>0 ) e--,s*=10;
23852  }else{
23853  while( !(s%10) && e>0 ) e--,s/=10;
23854  }
23855 
23856  /* adjust the sign of significand */
23857  s = sign<0 ? -s : s;
23858 
23859  /* if exponent, scale significand as appropriate
23860  ** and store in result. */
23861  if( e ){
23862  LONGDOUBLE_TYPE scale = 1.0;
23863  /* attempt to handle extremely small/large numbers better */
23864  if( e>307 && e<342 ){
23865  while( e%308 ) { scale *= 1.0e+1; e -= 1; }
23866  if( esign<0 ){
23867  result = s / scale;
23868  result /= 1.0e+308;
23869  }else{
23870  result = s * scale;
23871  result *= 1.0e+308;
23872  }
23873  }else if( e>=342 ){
23874  if( esign<0 ){
23875  result = 0.0*s;
23876  }else{
23877  result = 1e308*1e308*s; /* Infinity */
23878  }
23879  }else{
23880  /* 1.0e+22 is the largest power of 10 than can be
23881  ** represented exactly. */
23882  while( e%22 ) { scale *= 1.0e+1; e -= 1; }
23883  while( e>0 ) { scale *= 1.0e+22; e -= 22; }
23884  if( esign<0 ){
23885  result = s / scale;
23886  }else{
23887  result = s * scale;
23888  }
23889  }
23890  } else {
23891  result = (double)s;
23892  }
23893  }
23894 
23895  /* store the result */
23896  *pResult = result;
23897 
23898  /* return true if number and no extra non-whitespace chracters after */
23899  return z>=zEnd && nDigits>0 && eValid && nonNum==0;
23900 #else
23901  return !sqlite3Atoi64(z, pResult, length, enc);
23902 #endif /* SQLITE_OMIT_FLOATING_POINT */
23903 }
#define SQLITE_UTF16BE
Definition: sqlite3.c:4465
#define sqlite3Isspace(x)
Definition: sqlite3.c:12960
#define SQLITE_UTF16LE
Definition: sqlite3.c:4464
#define SQLITE_UTF8
Definition: sqlite3.c:4463
#define sqlite3Isdigit(x)
Definition: sqlite3.c:12963
SQLITE_PRIVATE int sqlite3Atoi64(const char *, i64 *, int, u8)
Definition: sqlite3.c:23955
sqlite_int64 i64
Definition: sqlite3.c:8954
#define LARGEST_INT64
Definition: sqlite3.c:9063
#define LONGDOUBLE_TYPE
Definition: sqlite3.c:8952
SQLITE_PRIVATE int sqlite3Atoi ( const char *  z)

Definition at line 24126 of file sqlite3.c.

References sqlite3GetInt32().

Referenced by sqlite3InitCallback(), and sqlite3Pragma().

24126  {
24127  int x = 0;
24128  if( z ) sqlite3GetInt32(z, &x);
24129  return x;
24130 }
SQLITE_PRIVATE int sqlite3GetInt32(const char *, int *)
Definition: sqlite3.c:24068

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3Atoi64 ( const char *  zNum,
i64 pNum,
int  length,
u8  enc 
)

Definition at line 23955 of file sqlite3.c.

Referenced by sqlite3DecOrHexToI64(), sqlite3ExprAssignVarNumber(), sqlite3VdbeIntValue(), and sqlite3VdbeMemNumerify().

23955  {
23956  int incr;
23957  u64 u = 0;
23958  int neg = 0; /* assume positive */
23959  int i;
23960  int c = 0;
23961  int nonNum = 0;
23962  const char *zStart;
23963  const char *zEnd = zNum + length;
23964  assert( enc==SQLITE_UTF8 || enc==SQLITE_UTF16LE || enc==SQLITE_UTF16BE );
23965  if( enc==SQLITE_UTF8 ){
23966  incr = 1;
23967  }else{
23968  incr = 2;
23969  assert( SQLITE_UTF16LE==2 && SQLITE_UTF16BE==3 );
23970  for(i=3-enc; i<length && zNum[i]==0; i+=2){}
23971  nonNum = i<length;
23972  zEnd = zNum+i+enc-3;
23973  zNum += (enc&1);
23974  }
23975  while( zNum<zEnd && sqlite3Isspace(*zNum) ) zNum+=incr;
23976  if( zNum<zEnd ){
23977  if( *zNum=='-' ){
23978  neg = 1;
23979  zNum+=incr;
23980  }else if( *zNum=='+' ){
23981  zNum+=incr;
23982  }
23983  }
23984  zStart = zNum;
23985  while( zNum<zEnd && zNum[0]=='0' ){ zNum+=incr; } /* Skip leading zeros. */
23986  for(i=0; &zNum[i]<zEnd && (c=zNum[i])>='0' && c<='9'; i+=incr){
23987  u = u*10 + c - '0';
23988  }
23989  if( u>LARGEST_INT64 ){
23990  *pNum = neg ? SMALLEST_INT64 : LARGEST_INT64;
23991  }else if( neg ){
23992  *pNum = -(i64)u;
23993  }else{
23994  *pNum = (i64)u;
23995  }
23996  testcase( i==18 );
23997  testcase( i==19 );
23998  testcase( i==20 );
23999  if( (c!=0 && &zNum[i]<zEnd) || (i==0 && zStart==zNum) || i>19*incr || nonNum ){
24000  /* zNum is empty or contains non-numeric text or is longer
24001  ** than 19 digits (thus guaranteeing that it is too large) */
24002  return 1;
24003  }else if( i<19*incr ){
24004  /* Less than 19 digits, so we know that it fits in 64 bits */
24005  assert( u<=LARGEST_INT64 );
24006  return 0;
24007  }else{
24008  /* zNum is a 19-digit numbers. Compare it against 9223372036854775808. */
24009  c = compare2pow63(zNum, incr);
24010  if( c<0 ){
24011  /* zNum is less than 9223372036854775808 so it fits */
24012  assert( u<=LARGEST_INT64 );
24013  return 0;
24014  }else if( c>0 ){
24015  /* zNum is greater than 9223372036854775808 so it overflows */
24016  return 1;
24017  }else{
24018  /* zNum is exactly 9223372036854775808. Fits if negative. The
24019  ** special case 2 overflow if positive */
24020  assert( u-1==LARGEST_INT64 );
24021  return neg ? 0 : 2;
24022  }
24023  }
24024 }
sqlite_uint64 u64
Definition: sqlite3.c:8955
#define SQLITE_UTF16BE
Definition: sqlite3.c:4465
#define sqlite3Isspace(x)
Definition: sqlite3.c:12960
#define SQLITE_UTF16LE
Definition: sqlite3.c:4464
#define SQLITE_UTF8
Definition: sqlite3.c:4463
#define testcase(X)
Definition: sqlite3.c:8458
sqlite_int64 i64
Definition: sqlite3.c:8954
#define LARGEST_INT64
Definition: sqlite3.c:9063
#define SMALLEST_INT64
Definition: sqlite3.c:9064
SQLITE_PRIVATE void sqlite3Attach ( Parse pParse,
Expr p,
Expr pDbname,
Expr pKey 
)

Definition at line 90368 of file sqlite3.c.

90368  {
90369  static const FuncDef attach_func = {
90370  3, /* nArg */
90371  SQLITE_UTF8, /* funcFlags */
90372  0, /* pUserData */
90373  0, /* pNext */
90374  attachFunc, /* xFunc */
90375  0, /* xStep */
90376  0, /* xFinalize */
90377  "sqlite_attach", /* zName */
90378  0, /* pHash */
90379  0 /* pDestructor */
90380  };
90381  codeAttach(pParse, SQLITE_ATTACH, &attach_func, p, p, pDbname, pKey);
90382 }
#define SQLITE_ATTACH
Definition: sqlite3.c:2866
#define SQLITE_UTF8
Definition: sqlite3.c:4463
SQLITE_PRIVATE int sqlite3AuthCheck ( Parse pParse,
int  code,
const char *  zArg1,
const char *  zArg2,
const char *  zArg3 
)

Definition at line 90746 of file sqlite3.c.

References sqlite3::sqlite3InitInfo::busy, Parse::db, sqlite3::pAuthArg, Parse::rc, sqlite3ErrorMsg(), sqlite3::xAuth, and Parse::zAuthContext.

Referenced by sqlite3AlterFinishAddColumn(), sqlite3AlterRenameTable(), sqlite3BeginTransaction(), sqlite3BeginTrigger(), sqlite3CommitTransaction(), sqlite3CreateIndex(), sqlite3DeleteFrom(), sqlite3DropIndex(), sqlite3DropTable(), sqlite3DropTriggerPtr(), sqlite3Insert(), sqlite3Pragma(), sqlite3RollbackTransaction(), sqlite3Savepoint(), sqlite3Select(), sqlite3StartTable(), sqlite3Update(), and sqlite3VtabBeginParse().

90752  {
90753  sqlite3 *db = pParse->db;
90754  int rc;
90755 
90756  /* Don't do any authorization checks if the database is initialising
90757  ** or if the parser is being invoked from within sqlite3_declare_vtab.
90758  */
90759  if( db->init.busy || IN_DECLARE_VTAB ){
90760  return SQLITE_OK;
90761  }
90762 
90763  if( db->xAuth==0 ){
90764  return SQLITE_OK;
90765  }
90766  rc = db->xAuth(db->pAuthArg, code, zArg1, zArg2, zArg3, pParse->zAuthContext
90767 #ifdef SQLITE_USER_AUTHENTICATION
90768  ,db->auth.zAuthUser
90769 #endif
90770  );
90771  if( rc==SQLITE_DENY ){
90772  sqlite3ErrorMsg(pParse, "not authorized");
90773  pParse->rc = SQLITE_AUTH;
90774  }else if( rc!=SQLITE_OK && rc!=SQLITE_IGNORE ){
90775  rc = SQLITE_DENY;
90776  sqliteAuthBadReturnCode(pParse);
90777  }
90778  return rc;
90779 }
const char * zAuthContext
Definition: sqlite3.c:12593
#define SQLITE_DENY
Definition: sqlite3.c:2820
#define IN_DECLARE_VTAB
Definition: sqlite3.c:12611
struct sqlite3::sqlite3InitInfo init
void * pAuthArg
Definition: sqlite3.c:11059
int rc
Definition: sqlite3.c:12503
SQLITE_PRIVATE void sqlite3ErrorMsg(Parse *, const char *,...)
Definition: sqlite3.c:23615
#define SQLITE_IGNORE
Definition: sqlite3.c:2821
sqlite3_xauth xAuth
Definition: sqlite3.c:11058
#define SQLITE_AUTH
Definition: sqlite3.c:635
#define SQLITE_OK
Definition: sqlite3.c:611
sqlite3 * db
Definition: sqlite3.c:12500

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3AuthContextPop ( AuthContext pContext)

Definition at line 90801 of file sqlite3.c.

References AuthContext::pParse, Parse::zAuthContext, and AuthContext::zAuthContext.

Referenced by sqlite3DeleteFrom(), and sqlite3Update().

90801  {
90802  if( pContext->pParse ){
90803  pContext->pParse->zAuthContext = pContext->zAuthContext;
90804  pContext->pParse = 0;
90805  }
90806 }
const char * zAuthContext
Definition: sqlite3.c:12593
Parse * pParse
Definition: sqlite3.c:12620
const char * zAuthContext
Definition: sqlite3.c:12619
SQLITE_PRIVATE void sqlite3AuthContextPush ( Parse pParse,
AuthContext pContext,
const char *  zContext 
)

Definition at line 90786 of file sqlite3.c.

References AuthContext::pParse, Parse::zAuthContext, and AuthContext::zAuthContext.

Referenced by sqlite3DeleteFrom(), and sqlite3Update().

90790  {
90791  assert( pParse );
90792  pContext->pParse = pParse;
90793  pContext->zAuthContext = pParse->zAuthContext;
90794  pParse->zAuthContext = zContext;
90795 }
const char * zAuthContext
Definition: sqlite3.c:12593
Parse * pParse
Definition: sqlite3.c:12620
const char * zAuthContext
Definition: sqlite3.c:12619
SQLITE_PRIVATE void sqlite3AuthRead ( Parse pParse,
Expr pExpr,
Schema pSchema,
SrcList pTabList 
)

Definition at line 90689 of file sqlite3.c.

References Table::aCol, Parse::db, Expr::iColumn, SrcList::SrcList_item::iCursor, Table::iPKey, Expr::iTable, SrcList::nSrc, Expr::op, SrcList::SrcList_item::pTab, Parse::pTriggerTab, sqlite3AuthReadCol(), sqlite3SchemaToIndex(), sqlite3::xAuth, Column::zName, and Table::zName.

90694  {
90695  sqlite3 *db = pParse->db;
90696  Table *pTab = 0; /* The table being read */
90697  const char *zCol; /* Name of the column of the table */
90698  int iSrc; /* Index in pTabList->a[] of table being read */
90699  int iDb; /* The index of the database the expression refers to */
90700  int iCol; /* Index of column in table */
90701 
90702  if( db->xAuth==0 ) return;
90703  iDb = sqlite3SchemaToIndex(pParse->db, pSchema);
90704  if( iDb<0 ){
90705  /* An attempt to read a column out of a subquery or other
90706  ** temporary table. */
90707  return;
90708  }
90709 
90710  assert( pExpr->op==TK_COLUMN || pExpr->op==TK_TRIGGER );
90711  if( pExpr->op==TK_TRIGGER ){
90712  pTab = pParse->pTriggerTab;
90713  }else{
90714  assert( pTabList );
90715  for(iSrc=0; ALWAYS(iSrc<pTabList->nSrc); iSrc++){
90716  if( pExpr->iTable==pTabList->a[iSrc].iCursor ){
90717  pTab = pTabList->a[iSrc].pTab;
90718  break;
90719  }
90720  }
90721  }
90722  iCol = pExpr->iColumn;
90723  if( NEVER(pTab==0) ) return;
90724 
90725  if( iCol>=0 ){
90726  assert( iCol<pTab->nCol );
90727  zCol = pTab->aCol[iCol].zName;
90728  }else if( pTab->iPKey>=0 ){
90729  assert( pTab->iPKey<pTab->nCol );
90730  zCol = pTab->aCol[pTab->iPKey].zName;
90731  }else{
90732  zCol = "ROWID";
90733  }
90734  assert( iDb>=0 && iDb<db->nDb );
90735  if( SQLITE_IGNORE==sqlite3AuthReadCol(pParse, pTab->zName, zCol, iDb) ){
90736  pExpr->op = TK_NULL;
90737  }
90738 }
u8 op
Definition: sqlite3.c:11926
#define NEVER(X)
Definition: sqlite3.c:8509
Column * aCol
Definition: sqlite3.c:11507
struct SrcList::SrcList_item a[1]
#define ALWAYS(X)
Definition: sqlite3.c:8508
#define TK_COLUMN
Definition: sqlite3.c:8785
i16 nCol
Definition: sqlite3.c:11518
SQLITE_PRIVATE int sqlite3SchemaToIndex(sqlite3 *db, Schema *)
Definition: sqlite3.c:106086
#define TK_TRIGGER
Definition: sqlite3.c:8693
#define TK_NULL
Definition: sqlite3.c:8732
i16 iPKey
Definition: sqlite3.c:11517
#define SQLITE_IGNORE
Definition: sqlite3.c:2821
sqlite3_xauth xAuth
Definition: sqlite3.c:11058
ynVar iColumn
Definition: sqlite3.c:11958
char * zName
Definition: sqlite3.c:11342
SQLITE_PRIVATE int sqlite3AuthReadCol(Parse *, const char *, const char *, int)
Definition: sqlite3.c:90652
Table * pTriggerTab
Definition: sqlite3.c:12556
int iTable
Definition: sqlite3.c:11954
sqlite3 * db
Definition: sqlite3.c:12500
char * zName
Definition: sqlite3.c:11506

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3AuthReadCol ( Parse pParse,
const char *  zTab,
const char *  zCol,
int  iDb 
)

Definition at line 90652 of file sqlite3.c.

References sqlite3::aDb, Parse::db, sqlite3::nDb, sqlite3::pAuthArg, Parse::rc, sqlite3ErrorMsg(), sqlite3::xAuth, Parse::zAuthContext, and Db::zName.

Referenced by sqlite3AuthRead(), and sqlite3FkCheck().

90657  {
90658  sqlite3 *db = pParse->db; /* Database handle */
90659  char *zDb = db->aDb[iDb].zName; /* Name of attached database */
90660  int rc; /* Auth callback return code */
90661 
90662  rc = db->xAuth(db->pAuthArg, SQLITE_READ, zTab,zCol,zDb,pParse->zAuthContext
90663 #ifdef SQLITE_USER_AUTHENTICATION
90664  ,db->auth.zAuthUser
90665 #endif
90666  );
90667  if( rc==SQLITE_DENY ){
90668  if( db->nDb>2 || iDb!=0 ){
90669  sqlite3ErrorMsg(pParse, "access to %s.%s.%s is prohibited",zDb,zTab,zCol);
90670  }else{
90671  sqlite3ErrorMsg(pParse, "access to %s.%s is prohibited", zTab, zCol);
90672  }
90673  pParse->rc = SQLITE_AUTH;
90674  }else if( rc!=SQLITE_IGNORE && rc!=SQLITE_OK ){
90675  sqliteAuthBadReturnCode(pParse);
90676  }
90677  return rc;
90678 }
#define SQLITE_READ
Definition: sqlite3.c:2862
const char * zAuthContext
Definition: sqlite3.c:12593
#define SQLITE_DENY
Definition: sqlite3.c:2820
void * pAuthArg
Definition: sqlite3.c:11059
int rc
Definition: sqlite3.c:12503
int nDb
Definition: sqlite3.c:10997
char * zName
Definition: sqlite3.c:10838
SQLITE_PRIVATE void sqlite3ErrorMsg(Parse *, const char *,...)
Definition: sqlite3.c:23615
#define SQLITE_IGNORE
Definition: sqlite3.c:2821
sqlite3_xauth xAuth
Definition: sqlite3.c:11058
Db * aDb
Definition: sqlite3.c:10996
#define SQLITE_AUTH
Definition: sqlite3.c:635
#define SQLITE_OK
Definition: sqlite3.c:611
sqlite3 * db
Definition: sqlite3.c:12500

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3AutoincrementBegin ( Parse pParse)

Definition at line 99881 of file sqlite3.c.

References sqlite3::aDb, Parse::db, AutoincInfo::iDb, Parse::pAinc, AutoincInfo::pNext, Db::pSchema, Schema::pSeqTab, AutoincInfo::pTab, Parse::pVdbe, AutoincInfo::regCtr, sqlite3OpenTable(), sqlite3VdbeAddOp0(), sqlite3VdbeAddOp2(), sqlite3VdbeAddOp3(), sqlite3VdbeAddOp4(), sqlite3VdbeChangeP5(), sqlite3VdbeCurrentAddr(), and Table::zName.

Referenced by sqlite3FinishCoding().

99881  {
99882  AutoincInfo *p; /* Information about an AUTOINCREMENT */
99883  sqlite3 *db = pParse->db; /* The database connection */
99884  Db *pDb; /* Database only autoinc table */
99885  int memId; /* Register holding max rowid */
99886  int addr; /* A VDBE address */
99887  Vdbe *v = pParse->pVdbe; /* VDBE under construction */
99888 
99889  /* This routine is never called during trigger-generation. It is
99890  ** only called from the top-level */
99891  assert( pParse->pTriggerTab==0 );
99892  assert( pParse==sqlite3ParseToplevel(pParse) );
99893 
99894  assert( v ); /* We failed long ago if this is not so */
99895  for(p = pParse->pAinc; p; p = p->pNext){
99896  pDb = &db->aDb[p->iDb];
99897  memId = p->regCtr;
99898  assert( sqlite3SchemaMutexHeld(db, 0, pDb->pSchema) );
99899  sqlite3OpenTable(pParse, 0, p->iDb, pDb->pSchema->pSeqTab, OP_OpenRead);
99900  sqlite3VdbeAddOp3(v, OP_Null, 0, memId, memId+1);
99901  addr = sqlite3VdbeCurrentAddr(v);
99902  sqlite3VdbeAddOp4(v, OP_String8, 0, memId-1, 0, p->pTab->zName, 0);
99903  sqlite3VdbeAddOp2(v, OP_Rewind, 0, addr+9); VdbeCoverage(v);
99904  sqlite3VdbeAddOp3(v, OP_Column, 0, 0, memId);
99905  sqlite3VdbeAddOp3(v, OP_Ne, memId-1, addr+7, memId); VdbeCoverage(v);
99907  sqlite3VdbeAddOp2(v, OP_Rowid, 0, memId+1);
99908  sqlite3VdbeAddOp3(v, OP_Column, 0, 1, memId);
99909  sqlite3VdbeAddOp2(v, OP_Goto, 0, addr+9);
99910  sqlite3VdbeAddOp2(v, OP_Next, 0, addr+2); VdbeCoverage(v);
99911  sqlite3VdbeAddOp2(v, OP_Integer, 0, memId);
99913  }
99914 }
#define VdbeCoverage(v)
Definition: sqlite3.c:10070
AutoincInfo * pNext
Definition: sqlite3.c:12425
#define OP_Ne
Definition: sqlite3.c:9836
#define sqlite3ParseToplevel(p)
Definition: sqlite3.c:13333
Definition: sqlite3.c:10837
SQLITE_PRIVATE int sqlite3VdbeAddOp4(Vdbe *, int, int, int, int, const char *zP4, int)
Definition: sqlite3.c:65024
SQLITE_PRIVATE int sqlite3VdbeAddOp3(Vdbe *, int, int, int, int)
Definition: sqlite3.c:64962
Schema * pSchema
Definition: sqlite3.c:10841
#define OP_Null
Definition: sqlite3.c:9786
#define OP_Goto
Definition: sqlite3.c:9774
#define OP_Integer
Definition: sqlite3.c:9783
#define SQLITE_JUMPIFNULL
Definition: sqlite3.c:11418
#define OP_Column
Definition: sqlite3.c:9805
#define OP_Rowid
Definition: sqlite3.c:9861
SQLITE_PRIVATE int sqlite3VdbeAddOp2(Vdbe *, int, int, int)
Definition: sqlite3.c:65016
AutoincInfo * pAinc
Definition: sqlite3.c:12552
SQLITE_PRIVATE void sqlite3VdbeChangeP5(Vdbe *, u8 P5)
Definition: sqlite3.c:65482
#define OP_OpenRead
Definition: sqlite3.c:9812
#define OP_Close
Definition: sqlite3.c:9819
#define OP_Next
Definition: sqlite3.c:9767
Db * aDb
Definition: sqlite3.c:10996
Vdbe * pVdbe
Definition: sqlite3.c:12502
Table * pTriggerTab
Definition: sqlite3.c:12556
#define OP_String8
Definition: sqlite3.c:9855
SQLITE_PRIVATE void sqlite3OpenTable(Parse *, int iCur, int iDb, Table *, int)
Definition: sqlite3.c:99665
Table * pSeqTab
Definition: sqlite3.c:10868
sqlite3 * db
Definition: sqlite3.c:12500
SQLITE_PRIVATE int sqlite3VdbeAddOp0(Vdbe *, int)
Definition: sqlite3.c:65010
char * zName
Definition: sqlite3.c:11506
SQLITE_PRIVATE int sqlite3VdbeCurrentAddr(Vdbe *)
Definition: sqlite3.c:65339
#define OP_Rewind
Definition: sqlite3.c:9866
Table * pTab
Definition: sqlite3.c:12426

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3AutoincrementEnd ( Parse pParse)

Definition at line 99937 of file sqlite3.c.

References sqlite3::aDb, Parse::db, AutoincInfo::iDb, Parse::pAinc, AutoincInfo::pNext, Db::pSchema, Schema::pSeqTab, Parse::pVdbe, AutoincInfo::regCtr, sqlite3GetTempReg(), sqlite3OpenTable(), sqlite3ReleaseTempReg(), sqlite3VdbeAddOp0(), sqlite3VdbeAddOp1(), sqlite3VdbeAddOp2(), sqlite3VdbeAddOp3(), sqlite3VdbeChangeP5(), and sqlite3VdbeJumpHere().

Referenced by sqlite3DeleteFrom(), sqlite3Insert(), and sqlite3Update().

99937  {
99938  AutoincInfo *p;
99939  Vdbe *v = pParse->pVdbe;
99940  sqlite3 *db = pParse->db;
99941 
99942  assert( v );
99943  for(p = pParse->pAinc; p; p = p->pNext){
99944  Db *pDb = &db->aDb[p->iDb];
99945  int j1;
99946  int iRec;
99947  int memId = p->regCtr;
99948 
99949  iRec = sqlite3GetTempReg(pParse);
99950  assert( sqlite3SchemaMutexHeld(db, 0, pDb->pSchema) );
99951  sqlite3OpenTable(pParse, 0, p->iDb, pDb->pSchema->pSeqTab, OP_OpenWrite);
99952  j1 = sqlite3VdbeAddOp1(v, OP_NotNull, memId+1); VdbeCoverage(v);
99953  sqlite3VdbeAddOp2(v, OP_NewRowid, 0, memId+1);
99954  sqlite3VdbeJumpHere(v, j1);
99955  sqlite3VdbeAddOp3(v, OP_MakeRecord, memId-1, 2, iRec);
99956  sqlite3VdbeAddOp3(v, OP_Insert, 0, iRec, memId+1);
99959  sqlite3ReleaseTempReg(pParse, iRec);
99960  }
99961 }
#define VdbeCoverage(v)
Definition: sqlite3.c:10070
#define OP_NotNull
Definition: sqlite3.c:9835
SQLITE_PRIVATE void sqlite3VdbeJumpHere(Vdbe *, int addr)
Definition: sqlite3.c:65494
AutoincInfo * pNext
Definition: sqlite3.c:12425
Definition: sqlite3.c:10837
SQLITE_PRIVATE int sqlite3VdbeAddOp3(Vdbe *, int, int, int, int)
Definition: sqlite3.c:64962
Schema * pSchema
Definition: sqlite3.c:10841
#define OP_Insert
Definition: sqlite3.c:9833
SQLITE_PRIVATE int sqlite3VdbeAddOp2(Vdbe *, int, int, int)
Definition: sqlite3.c:65016
AutoincInfo * pAinc
Definition: sqlite3.c:12552
SQLITE_PRIVATE void sqlite3VdbeChangeP5(Vdbe *, u8 P5)
Definition: sqlite3.c:65482
#define OP_MakeRecord
Definition: sqlite3.c:9807
#define OP_Close
Definition: sqlite3.c:9819
#define OP_NewRowid
Definition: sqlite3.c:9832
#define OPFLAG_APPEND
Definition: sqlite3.c:12630
Db * aDb
Definition: sqlite3.c:10996
Vdbe * pVdbe
Definition: sqlite3.c:12502
SQLITE_PRIVATE void sqlite3ReleaseTempReg(Parse *, int)
Definition: sqlite3.c:87188
SQLITE_PRIVATE int sqlite3VdbeAddOp1(Vdbe *, int, int)
Definition: sqlite3.c:65013
SQLITE_PRIVATE void sqlite3OpenTable(Parse *, int iCur, int iDb, Table *, int)
Definition: sqlite3.c:99665
Table * pSeqTab
Definition: sqlite3.c:10868
SQLITE_PRIVATE int sqlite3GetTempReg(Parse *)
Definition: sqlite3.c:87173
sqlite3 * db
Definition: sqlite3.c:12500
SQLITE_PRIVATE int sqlite3VdbeAddOp0(Vdbe *, int)
Definition: sqlite3.c:65010
#define OP_OpenWrite
Definition: sqlite3.c:9813

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3AutoLoadExtensions ( sqlite3 db)

Definition at line 103101 of file sqlite3.c.

References sqlite3_free(), sqlite3_mutex_enter(), sqlite3_mutex_leave(), sqlite3ErrorWithMsg(), and sqlite3MutexAlloc().

103101  {
103102  int i;
103103  int go = 1;
103104  int rc;
103105  int (*xInit)(sqlite3*,char**,const sqlite3_api_routines*);
103106 
103107  wsdAutoextInit;
103108  if( wsdAutoext.nExt==0 ){
103109  /* Common case: early out without every having to acquire a mutex */
103110  return;
103111  }
103112  for(i=0; go; i++){
103113  char *zErrmsg;
103114 #if SQLITE_THREADSAFE
103116 #endif
103117  sqlite3_mutex_enter(mutex);
103118  if( i>=wsdAutoext.nExt ){
103119  xInit = 0;
103120  go = 0;
103121  }else{
103122  xInit = (int(*)(sqlite3*,char**,const sqlite3_api_routines*))
103123  wsdAutoext.aExt[i];
103124  }
103125  sqlite3_mutex_leave(mutex);
103126  zErrmsg = 0;
103127  if( xInit && (rc = xInit(db, &zErrmsg, &sqlite3Apis))!=0 ){
103128  sqlite3ErrorWithMsg(db, rc,
103129  "automatic extension loading failed: %s", zErrmsg);
103130  go = 0;
103131  }
103132  sqlite3_free(zErrmsg);
103133  }
103134 }
#define SQLITE_MUTEX_STATIC_MASTER
Definition: sqlite3.c:6468
#define wsdAutoextInit
Definition: sqlite3.c:103002
SQLITE_PRIVATE void sqlite3ErrorWithMsg(sqlite3 *, int, const char *,...)
Definition: sqlite3.c:23583
SQLITE_PRIVATE sqlite3_mutex * sqlite3MutexAlloc(int)
Definition: sqlite3.c:19193
#define wsdAutoext
Definition: sqlite3.c:103003
SQLITE_API void SQLITE_STDCALL sqlite3_free(void *)
Definition: sqlite3.c:21010
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3BackupRestart ( sqlite3_backup pBackup)

Definition at line 63051 of file sqlite3.c.

References sqlite3_backup::iNext, and sqlite3_backup::pNext.

Referenced by sqlite3PagerCommitPhaseOne().

63051  {
63052  sqlite3_backup *p; /* Iterator variable */
63053  for(p=pBackup; p; p=p->pNext){
63054  assert( sqlite3_mutex_held(p->pSrc->pBt->mutex) );
63055  p->iNext = 1;
63056  }
63057 }
Btree * pSrc
Definition: sqlite3.c:62359
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
BtShared * pBt
Definition: sqlite3.c:52461
sqlite3_backup * pNext
Definition: sqlite3.c:62370
sqlite3_mutex * mutex
Definition: sqlite3.c:52548
SQLITE_PRIVATE void sqlite3BackupUpdate ( sqlite3_backup pBackup,
Pgno  iPage,
const u8 aData 
)

Definition at line 63018 of file sqlite3.c.

References sqlite3_backup::iNext, sqlite3::mutex, sqlite3_backup::pDestDb, sqlite3_backup::pNext, sqlite3_backup::rc, sqlite3_mutex_enter(), and sqlite3_mutex_leave().

63018  {
63019  sqlite3_backup *p; /* Iterator variable */
63020  for(p=pBackup; p; p=p->pNext){
63021  assert( sqlite3_mutex_held(p->pSrc->pBt->mutex) );
63022  if( !isFatalError(p->rc) && iPage<p->iNext ){
63023  /* The backup process p has already copied page iPage. But now it
63024  ** has been modified by a transaction on the source pager. Copy
63025  ** the new data into the backup.
63026  */
63027  int rc;
63028  assert( p->pDestDb );
63030  rc = backupOnePage(p, iPage, aData, 1);
63032  assert( rc!=SQLITE_BUSY && rc!=SQLITE_LOCKED );
63033  if( rc!=SQLITE_OK ){
63034  p->rc = rc;
63035  }
63036  }
63037  }
63038 }
#define SQLITE_LOCKED
Definition: sqlite3.c:618
Btree * pSrc
Definition: sqlite3.c:62359
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
sqlite3 * pDestDb
Definition: sqlite3.c:62352
#define SQLITE_BUSY
Definition: sqlite3.c:617
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
BtShared * pBt
Definition: sqlite3.c:52461
sqlite3_backup * pNext
Definition: sqlite3.c:62370
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_leave(sqlite3_mutex *)
Definition: sqlite3.c:19238
sqlite3_mutex * mutex
Definition: sqlite3.c:52548
SQLITE_API void SQLITE_STDCALL sqlite3_mutex_enter(sqlite3_mutex *)
Definition: sqlite3.c:19214

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3BeginBenignMalloc ( void  )

Definition at line 16933 of file sqlite3.c.

Referenced by sqlite3PagerAcquire(), sqlite3PagerClose(), sqlite3RollbackAll(), sqlite3VdbeTransferError(), sqlite3WalClose(), and sqlite3WalDefaultHook().

16933  {
16934  wsdHooksInit;
16935  if( wsdHooks.xBenignBegin ){
16936  wsdHooks.xBenignBegin();
16937  }
16938 }
#define wsdHooks
Definition: sqlite3.c:16911
#define wsdHooksInit
Definition: sqlite3.c:16910
SQLITE_PRIVATE void sqlite3BeginParse ( Parse pParse,
int  explainFlag 
)

Definition at line 90841 of file sqlite3.c.

References Parse::explain, and Parse::nVar.

90841  {
90842  pParse->explain = (u8)explainFlag;
90843  pParse->nVar = 0;
90844 }
UINT8_TYPE u8
Definition: sqlite3.c:8959
u8 explain
Definition: sqlite3.c:12577
int nVar
Definition: sqlite3.c:12573
SQLITE_PRIVATE void sqlite3BeginTransaction ( Parse pParse,
int  type 
)

Definition at line 94601 of file sqlite3.c.

References Parse::db, sqlite3::nDb, sqlite3AuthCheck(), sqlite3GetVdbe(), sqlite3VdbeAddOp2(), and sqlite3VdbeUsesBtree().

94601  {
94602  sqlite3 *db;
94603  Vdbe *v;
94604  int i;
94605 
94606  assert( pParse!=0 );
94607  db = pParse->db;
94608  assert( db!=0 );
94609 /* if( db->aDb[0].pBt==0 ) return; */
94610  if( sqlite3AuthCheck(pParse, SQLITE_TRANSACTION, "BEGIN", 0, 0) ){
94611  return;
94612  }
94613  v = sqlite3GetVdbe(pParse);
94614  if( !v ) return;
94615  if( type!=TK_DEFERRED ){
94616  for(i=0; i<db->nDb; i++){
94617  sqlite3VdbeAddOp2(v, OP_Transaction, i, (type==TK_EXCLUSIVE)+1);
94618  sqlite3VdbeUsesBtree(v, i);
94619  }
94620  }
94621  sqlite3VdbeAddOp2(v, OP_AutoCommit, 0, 0);
94622 }
#define OP_Transaction
Definition: sqlite3.c:9762
int nDb
Definition: sqlite3.c:10997
SQLITE_PRIVATE int sqlite3AuthCheck(Parse *, int, const char *, const char *, const char *)
Definition: sqlite3.c:90746
SQLITE_PRIVATE Vdbe * sqlite3GetVdbe(Parse *)
Definition: sqlite3.c:108233
#define TK_EXCLUSIVE
Definition: sqlite3.c:8640
SQLITE_PRIVATE int sqlite3VdbeAddOp2(Vdbe *, int, int, int)
Definition: sqlite3.c:65016
#define OP_AutoCommit
Definition: sqlite3.c:9761
#define TK_DEFERRED
Definition: sqlite3.c:8638
SQLITE_PRIVATE void sqlite3VdbeUsesBtree(Vdbe *, int)
Definition: sqlite3.c:65971
sqlite3 * db
Definition: sqlite3.c:12500
#define SQLITE_TRANSACTION
Definition: sqlite3.c:2864

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3BeginTrigger ( Parse pParse,
Token pName1,
Token pName2,
int  tr_tm,
int  op,
IdList pColumns,
SrcList pTableName,
Expr pWhen,
int  isTemp,
int  noErr 
)

Definition at line 112367 of file sqlite3.c.

References sqlite3::aDb, sqlite3::sqlite3InitInfo::busy, Parse::db, sqlite3::sqlite3InitInfo::iDb, sqlite3::mallocFailed, Token::n, Trigger::op, sqlite3::sqlite3InitInfo::orphanTrigger, Trigger::pColumns, Parse::pNewTrigger, Db::pSchema, Table::pSchema, Trigger::pSchema, Table::pSelect, Trigger::pTabSchema, Trigger::pWhen, sqlite3_strnicmp(), sqlite3AuthCheck(), sqlite3CheckObjectName(), sqlite3CodeVerifySchema(), sqlite3DbFree(), sqlite3DbMallocZero(), sqlite3DbStrDup(), sqlite3DeleteTrigger(), sqlite3ErrorMsg(), sqlite3ExprDelete(), sqlite3ExprDup(), sqlite3FixInit(), sqlite3FixSrcList(), sqlite3HashFind(), sqlite3IdListDelete(), sqlite3IdListDup(), sqlite3NameFromToken(), sqlite3SchemaToIndex(), sqlite3SrcListDelete(), sqlite3SrcListLookup(), sqlite3TwoPartName(), Trigger::table, Trigger::tr_tm, Schema::trigHash, SrcList::SrcList_item::zDatabase, Db::zName, Table::zName, SrcList::SrcList_item::zName, and Trigger::zName.

112378  {
112379  Trigger *pTrigger = 0; /* The new trigger */
112380  Table *pTab; /* Table that the trigger fires off of */
112381  char *zName = 0; /* Name of the trigger */
112382  sqlite3 *db = pParse->db; /* The database connection */
112383  int iDb; /* The database to store the trigger in */
112384  Token *pName; /* The unqualified db name */
112385  DbFixer sFix; /* State vector for the DB fixer */
112386  int iTabDb; /* Index of the database holding pTab */
112387 
112388  assert( pName1!=0 ); /* pName1->z might be NULL, but not pName1 itself */
112389  assert( pName2!=0 );
112390  assert( op==TK_INSERT || op==TK_UPDATE || op==TK_DELETE );
112391  assert( op>0 && op<0xff );
112392  if( isTemp ){
112393  /* If TEMP was specified, then the trigger name may not be qualified. */
112394  if( pName2->n>0 ){
112395  sqlite3ErrorMsg(pParse, "temporary trigger may not have qualified name");
112396  goto trigger_cleanup;
112397  }
112398  iDb = 1;
112399  pName = pName1;
112400  }else{
112401  /* Figure out the db that the trigger will be created in */
112402  iDb = sqlite3TwoPartName(pParse, pName1, pName2, &pName);
112403  if( iDb<0 ){
112404  goto trigger_cleanup;
112405  }
112406  }
112407  if( !pTableName || db->mallocFailed ){
112408  goto trigger_cleanup;
112409  }
112410 
112411  /* A long-standing parser bug is that this syntax was allowed:
112412  **
112413  ** CREATE TRIGGER attached.demo AFTER INSERT ON attached.tab ....
112414  ** ^^^^^^^^
112415  **
112416  ** To maintain backwards compatibility, ignore the database
112417  ** name on pTableName if we are reparsing out of SQLITE_MASTER.
112418  */
112419  if( db->init.busy && iDb!=1 ){
112420  sqlite3DbFree(db, pTableName->a[0].zDatabase);
112421  pTableName->a[0].zDatabase = 0;
112422  }
112423 
112424  /* If the trigger name was unqualified, and the table is a temp table,
112425  ** then set iDb to 1 to create the trigger in the temporary database.
112426  ** If sqlite3SrcListLookup() returns 0, indicating the table does not
112427  ** exist, the error is caught by the block below.
112428  */
112429  pTab = sqlite3SrcListLookup(pParse, pTableName);
112430  if( db->init.busy==0 && pName2->n==0 && pTab
112431  && pTab->pSchema==db->aDb[1].pSchema ){
112432  iDb = 1;
112433  }
112434 
112435  /* Ensure the table name matches database name and that the table exists */
112436  if( db->mallocFailed ) goto trigger_cleanup;
112437  assert( pTableName->nSrc==1 );
112438  sqlite3FixInit(&sFix, pParse, iDb, "trigger", pName);
112439  if( sqlite3FixSrcList(&sFix, pTableName) ){
112440  goto trigger_cleanup;
112441  }
112442  pTab = sqlite3SrcListLookup(pParse, pTableName);
112443  if( !pTab ){
112444  /* The table does not exist. */
112445  if( db->init.iDb==1 ){
112446  /* Ticket #3810.
112447  ** Normally, whenever a table is dropped, all associated triggers are
112448  ** dropped too. But if a TEMP trigger is created on a non-TEMP table
112449  ** and the table is dropped by a different database connection, the
112450  ** trigger is not visible to the database connection that does the
112451  ** drop so the trigger cannot be dropped. This results in an
112452  ** "orphaned trigger" - a trigger whose associated table is missing.
112453  */
112454  db->init.orphanTrigger = 1;
112455  }
112456  goto trigger_cleanup;
112457  }
112458  if( IsVirtual(pTab) ){
112459  sqlite3ErrorMsg(pParse, "cannot create triggers on virtual tables");
112460  goto trigger_cleanup;
112461  }
112462 
112463  /* Check that the trigger name is not reserved and that no trigger of the
112464  ** specified name exists */
112465  zName = sqlite3NameFromToken(db, pName);
112466  if( !zName || SQLITE_OK!=sqlite3CheckObjectName(pParse, zName) ){
112467  goto trigger_cleanup;
112468  }
112469  assert( sqlite3SchemaMutexHeld(db, iDb, 0) );
112470  if( sqlite3HashFind(&(db->aDb[iDb].pSchema->trigHash),zName) ){
112471  if( !noErr ){
112472  sqlite3ErrorMsg(pParse, "trigger %T already exists", pName);
112473  }else{
112474  assert( !db->init.busy );
112475  sqlite3CodeVerifySchema(pParse, iDb);
112476  }
112477  goto trigger_cleanup;
112478  }
112479 
112480  /* Do not create a trigger on a system table */
112481  if( sqlite3StrNICmp(pTab->zName, "sqlite_", 7)==0 ){
112482  sqlite3ErrorMsg(pParse, "cannot create trigger on system table");
112483  goto trigger_cleanup;
112484  }
112485 
112486  /* INSTEAD of triggers are only for views and views only support INSTEAD
112487  ** of triggers.
112488  */
112489  if( pTab->pSelect && tr_tm!=TK_INSTEAD ){
112490  sqlite3ErrorMsg(pParse, "cannot create %s trigger on view: %S",
112491  (tr_tm == TK_BEFORE)?"BEFORE":"AFTER", pTableName, 0);
112492  goto trigger_cleanup;
112493  }
112494  if( !pTab->pSelect && tr_tm==TK_INSTEAD ){
112495  sqlite3ErrorMsg(pParse, "cannot create INSTEAD OF"
112496  " trigger on table: %S", pTableName, 0);
112497  goto trigger_cleanup;
112498  }
112499  iTabDb = sqlite3SchemaToIndex(db, pTab->pSchema);
112500 
112501 #ifndef SQLITE_OMIT_AUTHORIZATION
112502  {
112503  int code = SQLITE_CREATE_TRIGGER;
112504  const char *zDb = db->aDb[iTabDb].zName;
112505  const char *zDbTrig = isTemp ? db->aDb[1].zName : zDb;
112506  if( iTabDb==1 || isTemp ) code = SQLITE_CREATE_TEMP_TRIGGER;
112507  if( sqlite3AuthCheck(pParse, code, zName, pTab->zName, zDbTrig) ){
112508  goto trigger_cleanup;
112509  }
112510  if( sqlite3AuthCheck(pParse, SQLITE_INSERT, SCHEMA_TABLE(iTabDb),0,zDb)){
112511  goto trigger_cleanup;
112512  }
112513  }
112514 #endif
112515 
112516  /* INSTEAD OF triggers can only appear on views and BEFORE triggers
112517  ** cannot appear on views. So we might as well translate every
112518  ** INSTEAD OF trigger into a BEFORE trigger. It simplifies code
112519  ** elsewhere.
112520  */
112521  if (tr_tm == TK_INSTEAD){
112522  tr_tm = TK_BEFORE;
112523  }
112524 
112525  /* Build the Trigger object */
112526  pTrigger = (Trigger*)sqlite3DbMallocZero(db, sizeof(Trigger));
112527  if( pTrigger==0 ) goto trigger_cleanup;
112528  pTrigger->zName = zName;
112529  zName = 0;
112530  pTrigger->table = sqlite3DbStrDup(db, pTableName->a[0].zName);
112531  pTrigger->pSchema = db->aDb[iDb].pSchema;
112532  pTrigger->pTabSchema = pTab->pSchema;
112533  pTrigger->op = (u8)op;
112534  pTrigger->tr_tm = tr_tm==TK_BEFORE ? TRIGGER_BEFORE : TRIGGER_AFTER;
112535  pTrigger->pWhen = sqlite3ExprDup(db, pWhen, EXPRDUP_REDUCE);
112536  pTrigger->pColumns = sqlite3IdListDup(db, pColumns);
112537  assert( pParse->pNewTrigger==0 );
112538  pParse->pNewTrigger = pTrigger;
112539 
112540 trigger_cleanup:
112541  sqlite3DbFree(db, zName);
112542  sqlite3SrcListDelete(db, pTableName);
112543  sqlite3IdListDelete(db, pColumns);
112544  sqlite3ExprDelete(db, pWhen);
112545  if( !pParse->pNewTrigger ){
112546  sqlite3DeleteTrigger(db, pTrigger);
112547  }else{
112548  assert( pParse->pNewTrigger==pTrigger );
112549  }
112550 }
#define TK_UPDATE
Definition: sqlite3.c:8741
unsigned int n
Definition: sqlite3.c:11799
#define SQLITE_CREATE_TRIGGER
Definition: sqlite3.c:2849
SQLITE_PRIVATE void sqlite3CodeVerifySchema(Parse *, int)
Definition: sqlite3.c:94717
char * zName
Definition: sqlite3.c:12655
#define TK_INSTEAD
Definition: sqlite3.c:8680
#define TRIGGER_BEFORE
Definition: sqlite3.c:12675
#define EXPRDUP_REDUCE
Definition: sqlite3.c:12032
UINT8_TYPE u8
Definition: sqlite3.c:8959
SQLITE_PRIVATE void sqlite3FixInit(DbFixer *, Parse *, int, const char *, const Token *)
Definition: sqlite3.c:90389
SQLITE_PRIVATE int sqlite3FixSrcList(DbFixer *, SrcList *)
Definition: sqlite3.c:90422
struct sqlite3::sqlite3InitInfo init
struct SrcList::SrcList_item a[1]
#define SQLITE_CREATE_TEMP_TRIGGER
Definition: sqlite3.c:2847
SQLITE_PRIVATE Table * sqlite3SrcListLookup(Parse *, SrcList *)
Definition: sqlite3.c:95623
Schema * pSchema
Definition: sqlite3.c:11535
SQLITE_PRIVATE char * sqlite3NameFromToken(sqlite3 *, Token *)
Definition: sqlite3.c:91488
char * zName
Definition: sqlite3.c:10838
SQLITE_PRIVATE int sqlite3TwoPartName(Parse *, Token *, Token *, Token **)
Definition: sqlite3.c:91564
Expr * pWhen
Definition: sqlite3.c:12659
SQLITE_PRIVATE int sqlite3AuthCheck(Parse *, int, const char *, const char *, const char *)
Definition: sqlite3.c:90746
Schema * pSchema
Definition: sqlite3.c:10841
SQLITE_PRIVATE void sqlite3DeleteTrigger(sqlite3 *, Trigger *)
Definition: sqlite3.c:112753
Select * pSelect
Definition: sqlite3.c:11509
SQLITE_PRIVATE int sqlite3SchemaToIndex(sqlite3 *db, Schema *)
Definition: sqlite3.c:106086
SQLITE_PRIVATE char * sqlite3DbStrDup(sqlite3 *, const char *)
Definition: sqlite3.c:21271
SQLITE_PRIVATE void sqlite3ErrorMsg(Parse *, const char *,...)
Definition: sqlite3.c:23615
#define sqlite3StrNICmp
Definition: sqlite3.c:12982
#define IsVirtual(X)
Definition: sqlite3.c:11563
IdList * pColumns
Definition: sqlite3.c:12660
Trigger * pNewTrigger
Definition: sqlite3.c:12592
#define TK_BEFORE
Definition: sqlite3.c:8666
int nSrc
Definition: sqlite3.c:12144
#define TRIGGER_AFTER
Definition: sqlite3.c:12676
SQLITE_PRIVATE void sqlite3ExprDelete(sqlite3 *, Expr *)
Definition: sqlite3.c:83532
#define SCHEMA_TABLE(x)
Definition: sqlite3.c:9192
#define TK_DELETE
Definition: sqlite3.c:8740
SQLITE_PRIVATE Expr * sqlite3ExprDup(sqlite3 *, Expr *, int)
Definition: sqlite3.c:83792
Schema * pTabSchema
Definition: sqlite3.c:12663
#define SQLITE_INSERT
Definition: sqlite3.c:2860
Db * aDb
Definition: sqlite3.c:10996
SQLITE_PRIVATE void * sqlite3DbMallocZero(sqlite3 *, u64)
Definition: sqlite3.c:21149
u8 mallocFailed
Definition: sqlite3.c:11008
SQLITE_PRIVATE void * sqlite3HashFind(const Hash *, const char *pKey)
Definition: sqlite3.c:25027
char * table
Definition: sqlite3.c:12656
#define TK_INSERT
Definition: sqlite3.c:8739
u8 tr_tm
Definition: sqlite3.c:12658
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE void sqlite3SrcListDelete(sqlite3 *, SrcList *)
Definition: sqlite3.c:94481
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
SQLITE_PRIVATE IdList * sqlite3IdListDup(sqlite3 *, IdList *)
Definition: sqlite3.c:83869
sqlite3 * db
Definition: sqlite3.c:12500
char * zName
Definition: sqlite3.c:11506
SQLITE_PRIVATE int sqlite3CheckObjectName(Parse *, const char *)
Definition: sqlite3.c:91599
Schema * pSchema
Definition: sqlite3.c:12662
Hash trigHash
Definition: sqlite3.c:10866
SQLITE_PRIVATE void sqlite3IdListDelete(sqlite3 *, IdList *)
Definition: sqlite3.c:94304

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3BeginWriteOperation ( Parse pParse,
int  setStatement,
int  iDb 
)

Definition at line 94762 of file sqlite3.c.

References Parse::isMultiWrite, sqlite3CodeVerifySchema(), and Parse::writeMask.

Referenced by sqlite3AlterBeginAddColumn(), sqlite3AlterRenameTable(), sqlite3CodeDropTable(), sqlite3CreateIndex(), sqlite3DeleteFrom(), sqlite3DropIndex(), sqlite3DropTable(), sqlite3DropTriggerPtr(), sqlite3FinishTrigger(), sqlite3Insert(), sqlite3Pragma(), sqlite3Reindex(), sqlite3StartTable(), and sqlite3Update().

94762  {
94763  Parse *pToplevel = sqlite3ParseToplevel(pParse);
94764  sqlite3CodeVerifySchema(pParse, iDb);
94765  DbMaskSet(pToplevel->writeMask, iDb);
94766  pToplevel->isMultiWrite |= setStatement;
94767 }
yDbMask writeMask
Definition: sqlite3.c:12538
SQLITE_PRIVATE void sqlite3CodeVerifySchema(Parse *, int)
Definition: sqlite3.c:94717
#define sqlite3ParseToplevel(p)
Definition: sqlite3.c:13333
u8 isMultiWrite
Definition: sqlite3.c:12508
#define DbMaskSet(M, I)
Definition: sqlite3.c:12478

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3BenignMallocHooks ( void(*)(void)  xBenignBegin,
void(*)(void)  xBenignEnd 
)

Definition at line 16919 of file sqlite3.c.

Referenced by sqlite3_test_control().

16922  {
16923  wsdHooksInit;
16924  wsdHooks.xBenignBegin = xBenignBegin;
16925  wsdHooks.xBenignEnd = xBenignEnd;
16926 }
#define wsdHooks
Definition: sqlite3.c:16911
#define wsdHooksInit
Definition: sqlite3.c:16910
SQLITE_PRIVATE CollSeq * sqlite3BinaryCompareCollSeq ( Parse pParse,
Expr pLeft,
Expr pRight 
)

Definition at line 83080 of file sqlite3.c.

References Expr::flags, and sqlite3ExprCollSeq().

Referenced by sqlite3CodeSubselect(), and sqlite3FindInIndex().

83084  {
83085  CollSeq *pColl;
83086  assert( pLeft );
83087  if( pLeft->flags & EP_Collate ){
83088  pColl = sqlite3ExprCollSeq(pParse, pLeft);
83089  }else if( pRight && (pRight->flags & EP_Collate)!=0 ){
83090  pColl = sqlite3ExprCollSeq(pParse, pRight);
83091  }else{
83092  pColl = sqlite3ExprCollSeq(pParse, pLeft);
83093  if( !pColl ){
83094  pColl = sqlite3ExprCollSeq(pParse, pRight);
83095  }
83096  }
83097  return pColl;
83098 }
u32 flags
Definition: sqlite3.c:11928
#define EP_Collate
Definition: sqlite3.c:11980
SQLITE_PRIVATE CollSeq * sqlite3ExprCollSeq(Parse *pParse, Expr *pExpr)
Definition: sqlite3.c:82932

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BitvecBuiltinTest ( int  sz,
int *  aOp 
)

Definition at line 39210 of file sqlite3.c.

References sqlite3_free(), sqlite3_malloc(), sqlite3_randomness(), sqlite3BitvecClear(), sqlite3BitvecCreate(), sqlite3BitvecDestroy(), sqlite3BitvecSet(), sqlite3BitvecSize(), and sqlite3BitvecTest().

Referenced by sqlite3_test_control().

39210  {
39211  Bitvec *pBitvec = 0;
39212  unsigned char *pV = 0;
39213  int rc = -1;
39214  int i, nx, pc, op;
39215  void *pTmpSpace;
39216 
39217  /* Allocate the Bitvec to be tested and a linear array of
39218  ** bits to act as the reference */
39219  pBitvec = sqlite3BitvecCreate( sz );
39220  pV = sqlite3MallocZero( (sz+7)/8 + 1 );
39221  pTmpSpace = sqlite3_malloc(BITVEC_SZ);
39222  if( pBitvec==0 || pV==0 || pTmpSpace==0 ) goto bitvec_end;
39223 
39224  /* NULL pBitvec tests */
39225  sqlite3BitvecSet(0, 1);
39226  sqlite3BitvecClear(0, 1, pTmpSpace);
39227 
39228  /* Run the program */
39229  pc = 0;
39230  while( (op = aOp[pc])!=0 ){
39231  switch( op ){
39232  case 1:
39233  case 2:
39234  case 5: {
39235  nx = 4;
39236  i = aOp[pc+2] - 1;
39237  aOp[pc+2] += aOp[pc+3];
39238  break;
39239  }
39240  case 3:
39241  case 4:
39242  default: {
39243  nx = 2;
39244  sqlite3_randomness(sizeof(i), &i);
39245  break;
39246  }
39247  }
39248  if( (--aOp[pc+1]) > 0 ) nx = 0;
39249  pc += nx;
39250  i = (i & 0x7fffffff)%sz;
39251  if( (op & 1)!=0 ){
39252  SETBIT(pV, (i+1));
39253  if( op!=5 ){
39254  if( sqlite3BitvecSet(pBitvec, i+1) ) goto bitvec_end;
39255  }
39256  }else{
39257  CLEARBIT(pV, (i+1));
39258  sqlite3BitvecClear(pBitvec, i+1, pTmpSpace);
39259  }
39260  }
39261 
39262  /* Test to make sure the linear array exactly matches the
39263  ** Bitvec object. Start with the assumption that they do
39264  ** match (rc==0). Change rc to non-zero if a discrepancy
39265  ** is found.
39266  */
39267  rc = sqlite3BitvecTest(0,0) + sqlite3BitvecTest(pBitvec, sz+1)
39268  + sqlite3BitvecTest(pBitvec, 0)
39269  + (sqlite3BitvecSize(pBitvec) - sz);
39270  for(i=1; i<=sz; i++){
39271  if( (TESTBIT(pV,i))!=sqlite3BitvecTest(pBitvec,i) ){
39272  rc = i;
39273  break;
39274  }
39275  }
39276 
39277  /* Free allocated structure */
39278 bitvec_end:
39279  sqlite3_free(pTmpSpace);
39280  sqlite3_free(pV);
39281  sqlite3BitvecDestroy(pBitvec);
39282  return rc;
39283 }
#define SETBIT(V, I)
Definition: sqlite3.c:39176
SQLITE_PRIVATE void sqlite3BitvecDestroy(Bitvec *)
Definition: sqlite3.c:39150
SQLITE_API void *SQLITE_STDCALL sqlite3_malloc(int)
Definition: sqlite3.c:20854
#define CLEARBIT(V, I)
Definition: sqlite3.c:39177
SQLITE_PRIVATE u32 sqlite3BitvecSize(Bitvec *)
Definition: sqlite3.c:39165
SQLITE_PRIVATE void * sqlite3MallocZero(u64)
Definition: sqlite3.c:21137
#define BITVEC_SZ
Definition: sqlite3.c:38917
SQLITE_PRIVATE int sqlite3BitvecSet(Bitvec *, u32)
Definition: sqlite3.c:39042
SQLITE_API void SQLITE_STDCALL sqlite3_randomness(int N, void *P)
Definition: sqlite3.c:22539
SQLITE_PRIVATE int sqlite3BitvecTest(Bitvec *, u32)
Definition: sqlite3.c:39006
SQLITE_PRIVATE void sqlite3BitvecClear(Bitvec *, u32, void *)
Definition: sqlite3.c:39113
SQLITE_PRIVATE Bitvec * sqlite3BitvecCreate(u32)
Definition: sqlite3.c:38991
#define TESTBIT(V, I)
Definition: sqlite3.c:39178
SQLITE_API void SQLITE_STDCALL sqlite3_free(void *)
Definition: sqlite3.c:21010

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3BitvecClear ( Bitvec p,
u32  i,
void *  pBuf 
)

Definition at line 39113 of file sqlite3.c.

References Bitvec::iDivisor, Bitvec::iSize, and Bitvec::nSet.

Referenced by sqlite3BitvecBuiltinTest(), and sqlite3PagerMovepage().

39113  {
39114  if( p==0 ) return;
39115  assert( i>0 );
39116  i--;
39117  while( p->iDivisor ){
39118  u32 bin = i/p->iDivisor;
39119  i = i%p->iDivisor;
39120  p = p->u.apSub[bin];
39121  if (!p) {
39122  return;
39123  }
39124  }
39125  if( p->iSize<=BITVEC_NBIT ){
39126  p->u.aBitmap[i/BITVEC_SZELEM] &= ~(1 << (i&(BITVEC_SZELEM-1)));
39127  }else{
39128  unsigned int j;
39129  u32 *aiValues = pBuf;
39130  memcpy(aiValues, p->u.aHash, sizeof(p->u.aHash));
39131  memset(p->u.aHash, 0, sizeof(p->u.aHash));
39132  p->nSet = 0;
39133  for(j=0; j<BITVEC_NINT; j++){
39134  if( aiValues[j] && aiValues[j]!=(i+1) ){
39135  u32 h = BITVEC_HASH(aiValues[j]-1);
39136  p->nSet++;
39137  while( p->u.aHash[h] ){
39138  h++;
39139  if( h>=BITVEC_NINT ) h = 0;
39140  }
39141  p->u.aHash[h] = aiValues[j];
39142  }
39143  }
39144  }
39145 }
Bitvec * apSub[BITVEC_NPTR]
Definition: sqlite3.c:38982
u32 iSize
Definition: sqlite3.c:38971
#define BITVEC_NBIT
Definition: sqlite3.c:38933
BITVEC_TELEM aBitmap[BITVEC_NELEM]
Definition: sqlite3.c:38980
u32 aHash[BITVEC_NINT]
Definition: sqlite3.c:38981
UINT32_TYPE u32
Definition: sqlite3.c:8956
u32 iDivisor
Definition: sqlite3.c:38975
#define BITVEC_SZELEM
Definition: sqlite3.c:38929
#define BITVEC_HASH(X)
Definition: sqlite3.c:38944
u32 nSet
Definition: sqlite3.c:38972
union Bitvec::@8 u
#define BITVEC_NINT
Definition: sqlite3.c:38936
SQLITE_PRIVATE Bitvec * sqlite3BitvecCreate ( u32  iSize)

Definition at line 38991 of file sqlite3.c.

References Bitvec::iSize.

Referenced by sqlite3BitvecBuiltinTest(), sqlite3BitvecSet(), and sqlite3PagerOpenSavepoint().

38991  {
38992  Bitvec *p;
38993  assert( sizeof(*p)==BITVEC_SZ );
38994  p = sqlite3MallocZero( sizeof(*p) );
38995  if( p ){
38996  p->iSize = iSize;
38997  }
38998  return p;
38999 }
u32 iSize
Definition: sqlite3.c:38971
SQLITE_PRIVATE void * sqlite3MallocZero(u64)
Definition: sqlite3.c:21137
#define BITVEC_SZ
Definition: sqlite3.c:38917
SQLITE_PRIVATE void sqlite3BitvecDestroy ( Bitvec p)

Definition at line 39150 of file sqlite3.c.

References Bitvec::iDivisor, sqlite3_free(), and sqlite3BitvecDestroy().

Referenced by sqlite3BitvecBuiltinTest(), sqlite3BitvecDestroy(), and sqlite3PagerSavepoint().

39150  {
39151  if( p==0 ) return;
39152  if( p->iDivisor ){
39153  unsigned int i;
39154  for(i=0; i<BITVEC_NPTR; i++){
39155  sqlite3BitvecDestroy(p->u.apSub[i]);
39156  }
39157  }
39158  sqlite3_free(p);
39159 }
SQLITE_PRIVATE void sqlite3BitvecDestroy(Bitvec *)
Definition: sqlite3.c:39150
Bitvec * apSub[BITVEC_NPTR]
Definition: sqlite3.c:38982
u32 iDivisor
Definition: sqlite3.c:38975
#define BITVEC_NPTR
Definition: sqlite3.c:38946
union Bitvec::@8 u
SQLITE_API void SQLITE_STDCALL sqlite3_free(void *)
Definition: sqlite3.c:21010

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BitvecSet ( Bitvec p,
u32  i 
)

Definition at line 39042 of file sqlite3.c.

References Bitvec::iDivisor, Bitvec::iSize, Bitvec::nSet, and sqlite3BitvecCreate().

Referenced by sqlite3BitvecBuiltinTest(), and sqlite3PagerAcquire().

39042  {
39043  u32 h;
39044  if( p==0 ) return SQLITE_OK;
39045  assert( i>0 );
39046  assert( i<=p->iSize );
39047  i--;
39048  while((p->iSize > BITVEC_NBIT) && p->iDivisor) {
39049  u32 bin = i/p->iDivisor;
39050  i = i%p->iDivisor;
39051  if( p->u.apSub[bin]==0 ){
39052  p->u.apSub[bin] = sqlite3BitvecCreate( p->iDivisor );
39053  if( p->u.apSub[bin]==0 ) return SQLITE_NOMEM;
39054  }
39055  p = p->u.apSub[bin];
39056  }
39057  if( p->iSize<=BITVEC_NBIT ){
39058  p->u.aBitmap[i/BITVEC_SZELEM] |= 1 << (i&(BITVEC_SZELEM-1));
39059  return SQLITE_OK;
39060  }
39061  h = BITVEC_HASH(i++);
39062  /* if there wasn't a hash collision, and this doesn't */
39063  /* completely fill the hash, then just add it without */
39064  /* worring about sub-dividing and re-hashing. */
39065  if( !p->u.aHash[h] ){
39066  if (p->nSet<(BITVEC_NINT-1)) {
39067  goto bitvec_set_end;
39068  } else {
39069  goto bitvec_set_rehash;
39070  }
39071  }
39072  /* there was a collision, check to see if it's already */
39073  /* in hash, if not, try to find a spot for it */
39074  do {
39075  if( p->u.aHash[h]==i ) return SQLITE_OK;
39076  h++;
39077  if( h>=BITVEC_NINT ) h = 0;
39078  } while( p->u.aHash[h] );
39079  /* we didn't find it in the hash. h points to the first */
39080  /* available free spot. check to see if this is going to */
39081  /* make our hash too "full". */
39082 bitvec_set_rehash:
39083  if( p->nSet>=BITVEC_MXHASH ){
39084  unsigned int j;
39085  int rc;
39086  u32 *aiValues = sqlite3StackAllocRaw(0, sizeof(p->u.aHash));
39087  if( aiValues==0 ){
39088  return SQLITE_NOMEM;
39089  }else{
39090  memcpy(aiValues, p->u.aHash, sizeof(p->u.aHash));
39091  memset(p->u.apSub, 0, sizeof(p->u.apSub));
39092  p->iDivisor = (p->iSize + BITVEC_NPTR - 1)/BITVEC_NPTR;
39093  rc = sqlite3BitvecSet(p, i);
39094  for(j=0; j<BITVEC_NINT; j++){
39095  if( aiValues[j] ) rc |= sqlite3BitvecSet(p, aiValues[j]);
39096  }
39097  sqlite3StackFree(0, aiValues);
39098  return rc;
39099  }
39100  }
39101 bitvec_set_end:
39102  p->nSet++;
39103  p->u.aHash[h] = i;
39104  return SQLITE_OK;
39105 }
Bitvec * apSub[BITVEC_NPTR]
Definition: sqlite3.c:38982
u32 iSize
Definition: sqlite3.c:38971
#define SQLITE_NOMEM
Definition: sqlite3.c:619
#define BITVEC_NBIT
Definition: sqlite3.c:38933
BITVEC_TELEM aBitmap[BITVEC_NELEM]
Definition: sqlite3.c:38980
u32 aHash[BITVEC_NINT]
Definition: sqlite3.c:38981
UINT32_TYPE u32
Definition: sqlite3.c:8956
u32 iDivisor
Definition: sqlite3.c:38975
#define BITVEC_SZELEM
Definition: sqlite3.c:38929
SQLITE_PRIVATE int sqlite3BitvecSet(Bitvec *, u32)
Definition: sqlite3.c:39042
#define BITVEC_MXHASH
Definition: sqlite3.c:38939
#define sqlite3StackAllocRaw(D, N)
Definition: sqlite3.c:13019
#define BITVEC_NPTR
Definition: sqlite3.c:38946
#define sqlite3StackFree(D, P)
Definition: sqlite3.c:13021
SQLITE_PRIVATE Bitvec * sqlite3BitvecCreate(u32)
Definition: sqlite3.c:38991
#define BITVEC_HASH(X)
Definition: sqlite3.c:38944
u32 nSet
Definition: sqlite3.c:38972
#define SQLITE_OK
Definition: sqlite3.c:611
union Bitvec::@8 u
#define BITVEC_NINT
Definition: sqlite3.c:38936

Here is the call graph for this function:

SQLITE_PRIVATE u32 sqlite3BitvecSize ( Bitvec p)

Definition at line 39165 of file sqlite3.c.

References Bitvec::iSize.

Referenced by sqlite3BitvecBuiltinTest().

39165  {
39166  return p->iSize;
39167 }
u32 iSize
Definition: sqlite3.c:38971
SQLITE_PRIVATE int sqlite3BitvecTest ( Bitvec p,
u32  i 
)

Definition at line 39006 of file sqlite3.c.

References Bitvec::iDivisor, and Bitvec::iSize.

Referenced by sqlite3BitvecBuiltinTest().

39006  {
39007  if( p==0 ) return 0;
39008  if( i>p->iSize || i==0 ) return 0;
39009  i--;
39010  while( p->iDivisor ){
39011  u32 bin = i/p->iDivisor;
39012  i = i%p->iDivisor;
39013  p = p->u.apSub[bin];
39014  if (!p) {
39015  return 0;
39016  }
39017  }
39018  if( p->iSize<=BITVEC_NBIT ){
39019  return (p->u.aBitmap[i/BITVEC_SZELEM] & (1<<(i&(BITVEC_SZELEM-1))))!=0;
39020  } else{
39021  u32 h = BITVEC_HASH(i++);
39022  while( p->u.aHash[h] ){
39023  if( p->u.aHash[h]==i ) return 1;
39024  h = (h+1) % BITVEC_NINT;
39025  }
39026  return 0;
39027  }
39028 }
Bitvec * apSub[BITVEC_NPTR]
Definition: sqlite3.c:38982
u32 iSize
Definition: sqlite3.c:38971
#define BITVEC_NBIT
Definition: sqlite3.c:38933
BITVEC_TELEM aBitmap[BITVEC_NELEM]
Definition: sqlite3.c:38980
u32 aHash[BITVEC_NINT]
Definition: sqlite3.c:38981
UINT32_TYPE u32
Definition: sqlite3.c:8956
u32 iDivisor
Definition: sqlite3.c:38975
#define BITVEC_SZELEM
Definition: sqlite3.c:38929
#define BITVEC_HASH(X)
Definition: sqlite3.c:38944
union Bitvec::@8 u
#define BITVEC_NINT
Definition: sqlite3.c:38936
SQLITE_PRIVATE int sqlite3BtreeBeginStmt ( Btree p,
int  iStatement 
)

Definition at line 56822 of file sqlite3.c.

References Btree::pBt, BtShared::pPager, sqlite3BtreeEnter(), sqlite3BtreeLeave(), and sqlite3PagerOpenSavepoint().

Referenced by sqlite3VdbeExec().

56822  {
56823  int rc;
56824  BtShared *pBt = p->pBt;
56825  sqlite3BtreeEnter(p);
56826  assert( p->inTrans==TRANS_WRITE );
56827  assert( (pBt->btsFlags & BTS_READ_ONLY)==0 );
56828  assert( iStatement>0 );
56829  assert( iStatement>p->db->nSavepoint );
56830  assert( pBt->inTransaction==TRANS_WRITE );
56831  /* At the pager level, a statement transaction is a savepoint with
56832  ** an index greater than all savepoints created explicitly using
56833  ** SQL statements. It is illegal to open, release or rollback any
56834  ** such savepoints while the statement transaction savepoint is active.
56835  */
56836  rc = sqlite3PagerOpenSavepoint(pBt->pPager, iStatement);
56837  sqlite3BtreeLeave(p);
56838  return rc;
56839 }
SQLITE_PRIVATE void sqlite3BtreeEnter(Btree *)
Definition: sqlite3.c:52850
int nSavepoint
Definition: sqlite3.c:11079
#define TRANS_WRITE
Definition: sqlite3.c:52484
SQLITE_PRIVATE int sqlite3PagerOpenSavepoint(Pager *pPager, int n)
Definition: sqlite3.c:48150
u16 btsFlags
Definition: sqlite3.c:52537
#define BTS_READ_ONLY
Definition: sqlite3.c:52562
SQLITE_PRIVATE void sqlite3BtreeLeave(Btree *)
Definition: sqlite3.c:52922
sqlite3 * db
Definition: sqlite3.c:52460
BtShared * pBt
Definition: sqlite3.c:52461
u8 inTrans
Definition: sqlite3.c:52462
Pager * pPager
Definition: sqlite3.c:52522
u8 inTransaction
Definition: sqlite3.c:52532

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BtreeBeginTrans ( Btree p,
int  wrflag 
)

Definition at line 55961 of file sqlite3.c.

References MemPage::aData, BtShared::btsFlags, Btree::db, BtLock::eLock, Btree::inTrans, BtShared::inTransaction, Btree::lock, BtShared::nPage, sqlite3::nSavepoint, BtShared::nTransaction, Btree::pBt, BtLock::pBtree, MemPage::pDbPage, BtShared::pLock, BtLock::pNext, BtShared::pPage1, BtShared::pPager, BtShared::pWriter, Btree::sharable, sqlite3BtreeEnter(), sqlite3BtreeLeave(), sqlite3Get4byte(), sqlite3PagerBegin(), sqlite3PagerOpenSavepoint(), sqlite3PagerWrite(), sqlite3Put4byte(), and sqlite3TempInMemory().

Referenced by sqlite3_backup_step(), sqlite3BtreeSetVersion(), sqlite3RunVacuum(), and sqlite3VdbeExec().

55961  {
55962  sqlite3 *pBlock = 0;
55963  BtShared *pBt = p->pBt;
55964  int rc = SQLITE_OK;
55965 
55966  sqlite3BtreeEnter(p);
55967  btreeIntegrity(p);
55968 
55969  /* If the btree is already in a write-transaction, or it
55970  ** is already in a read-transaction and a read-transaction
55971  ** is requested, this is a no-op.
55972  */
55973  if( p->inTrans==TRANS_WRITE || (p->inTrans==TRANS_READ && !wrflag) ){
55974  goto trans_begun;
55975  }
55976  assert( pBt->inTransaction==TRANS_WRITE || IfNotOmitAV(pBt->bDoTruncate)==0 );
55977 
55978  /* Write transactions are not possible on a read-only database */
55979  if( (pBt->btsFlags & BTS_READ_ONLY)!=0 && wrflag ){
55980  rc = SQLITE_READONLY;
55981  goto trans_begun;
55982  }
55983 
55984 #ifndef SQLITE_OMIT_SHARED_CACHE
55985  /* If another database handle has already opened a write transaction
55986  ** on this shared-btree structure and a second write transaction is
55987  ** requested, return SQLITE_LOCKED.
55988  */
55989  if( (wrflag && pBt->inTransaction==TRANS_WRITE)
55990  || (pBt->btsFlags & BTS_PENDING)!=0
55991  ){
55992  pBlock = pBt->pWriter->db;
55993  }else if( wrflag>1 ){
55994  BtLock *pIter;
55995  for(pIter=pBt->pLock; pIter; pIter=pIter->pNext){
55996  if( pIter->pBtree!=p ){
55997  pBlock = pIter->pBtree->db;
55998  break;
55999  }
56000  }
56001  }
56002  if( pBlock ){
56003  sqlite3ConnectionBlocked(p->db, pBlock);
56005  goto trans_begun;
56006  }
56007 #endif
56008 
56009  /* Any read-only or read-write transaction implies a read-lock on
56010  ** page 1. So if some other shared-cache client already has a write-lock
56011  ** on page 1, the transaction cannot be opened. */
56012  rc = querySharedCacheTableLock(p, MASTER_ROOT, READ_LOCK);
56013  if( SQLITE_OK!=rc ) goto trans_begun;
56014 
56015  pBt->btsFlags &= ~BTS_INITIALLY_EMPTY;
56016  if( pBt->nPage==0 ) pBt->btsFlags |= BTS_INITIALLY_EMPTY;
56017  do {
56018  /* Call lockBtree() until either pBt->pPage1 is populated or
56019  ** lockBtree() returns something other than SQLITE_OK. lockBtree()
56020  ** may return SQLITE_OK but leave pBt->pPage1 set to 0 if after
56021  ** reading page 1 it discovers that the page-size of the database
56022  ** file is not pBt->pageSize. In this case lockBtree() will update
56023  ** pBt->pageSize to the page-size of the file on disk.
56024  */
56025  while( pBt->pPage1==0 && SQLITE_OK==(rc = lockBtree(pBt)) );
56026 
56027  if( rc==SQLITE_OK && wrflag ){
56028  if( (pBt->btsFlags & BTS_READ_ONLY)!=0 ){
56029  rc = SQLITE_READONLY;
56030  }else{
56031  rc = sqlite3PagerBegin(pBt->pPager,wrflag>1,sqlite3TempInMemory(p->db));
56032  if( rc==SQLITE_OK ){
56033  rc = newDatabase(pBt);
56034  }
56035  }
56036  }
56037 
56038  if( rc!=SQLITE_OK ){
56039  unlockBtreeIfUnused(pBt);
56040  }
56041  }while( (rc&0xFF)==SQLITE_BUSY && pBt->inTransaction==TRANS_NONE &&
56042  btreeInvokeBusyHandler(pBt) );
56043 
56044  if( rc==SQLITE_OK ){
56045  if( p->inTrans==TRANS_NONE ){
56046  pBt->nTransaction++;
56047 #ifndef SQLITE_OMIT_SHARED_CACHE
56048  if( p->sharable ){
56049  assert( p->lock.pBtree==p && p->lock.iTable==1 );
56050  p->lock.eLock = READ_LOCK;
56051  p->lock.pNext = pBt->pLock;
56052  pBt->pLock = &p->lock;
56053  }
56054 #endif
56055  }
56056  p->inTrans = (wrflag?TRANS_WRITE:TRANS_READ);
56057  if( p->inTrans>pBt->inTransaction ){
56058  pBt->inTransaction = p->inTrans;
56059  }
56060  if( wrflag ){
56061  MemPage *pPage1 = pBt->pPage1;
56062 #ifndef SQLITE_OMIT_SHARED_CACHE
56063  assert( !pBt->pWriter );
56064  pBt->pWriter = p;
56065  pBt->btsFlags &= ~BTS_EXCLUSIVE;
56066  if( wrflag>1 ) pBt->btsFlags |= BTS_EXCLUSIVE;
56067 #endif
56068 
56069  /* If the db-size header field is incorrect (as it may be if an old
56070  ** client has been writing the database file), update it now. Doing
56071  ** this sooner rather than later means the database size can safely
56072  ** re-read the database size from page 1 if a savepoint or transaction
56073  ** rollback occurs within the transaction.
56074  */
56075  if( pBt->nPage!=get4byte(&pPage1->aData[28]) ){
56076  rc = sqlite3PagerWrite(pPage1->pDbPage);
56077  if( rc==SQLITE_OK ){
56078  put4byte(&pPage1->aData[28], pBt->nPage);
56079  }
56080  }
56081  }
56082  }
56083 
56084 
56085 trans_begun:
56086  if( rc==SQLITE_OK && wrflag ){
56087  /* This call makes sure that the pager has the correct number of
56088  ** open savepoints. If the second parameter is greater than 0 and
56089  ** the sub-journal is not already open, then it will be opened here.
56090  */
56092  }
56093 
56094  btreeIntegrity(p);
56095  sqlite3BtreeLeave(p);
56096  return rc;
56097 }
#define SQLITE_READONLY
Definition: sqlite3.c:620
u8 sharable
Definition: sqlite3.c:52463
BtLock * pLock
Definition: sqlite3.c:52553
#define IfNotOmitAV(expr)
Definition: sqlite3.c:53142
u8 eLock
Definition: sqlite3.c:52430
#define SQLITE_LOCKED_SHAREDCACHE
Definition: sqlite3.c:687
#define BTS_PENDING
Definition: sqlite3.c:52568
SQLITE_PRIVATE void sqlite3BtreeEnter(Btree *)
Definition: sqlite3.c:52850
BtLock * pNext
Definition: sqlite3.c:52431
int nSavepoint
Definition: sqlite3.c:11079
#define TRANS_WRITE
Definition: sqlite3.c:52484
#define put4byte
Definition: sqlite3.c:52794
int nTransaction
Definition: sqlite3.c:52544
Btree * pWriter
Definition: sqlite3.c:52554
#define BTS_EXCLUSIVE
Definition: sqlite3.c:52567
MemPage * pPage1
Definition: sqlite3.c:52525
SQLITE_PRIVATE int sqlite3PagerOpenSavepoint(Pager *pPager, int n)
Definition: sqlite3.c:48150
#define READ_LOCK
Definition: sqlite3.c:52435
u16 btsFlags
Definition: sqlite3.c:52537
#define sqlite3ConnectionBlocked(x, y)
Definition: sqlite3.c:13714
#define btreeIntegrity(p)
Definition: sqlite3.c:52745
Pgno iTable
Definition: sqlite3.c:52429
#define SQLITE_BUSY
Definition: sqlite3.c:617
#define BTS_READ_ONLY
Definition: sqlite3.c:52562
u32 nPage
Definition: sqlite3.c:52545
SQLITE_PRIVATE void sqlite3BtreeLeave(Btree *)
Definition: sqlite3.c:52922
#define TRANS_READ
Definition: sqlite3.c:52483
sqlite3 * db
Definition: sqlite3.c:52460
SQLITE_PRIVATE int sqlite3PagerBegin(Pager *, int exFlag, int)
Definition: sqlite3.c:47249
#define MASTER_ROOT
Definition: sqlite3.c:9187
BtShared * pBt
Definition: sqlite3.c:52461
u8 inTrans
Definition: sqlite3.c:52462
Pager * pPager
Definition: sqlite3.c:52522
BtLock lock
Definition: sqlite3.c:52471
u8 * aData
Definition: sqlite3.c:52406
SQLITE_PRIVATE int sqlite3PagerWrite(DbPage *)
#define SQLITE_OK
Definition: sqlite3.c:611
Btree * pBtree
Definition: sqlite3.c:52428
SQLITE_PRIVATE int sqlite3TempInMemory(const sqlite3 *)
Definition: sqlite3.c:130059
#define TRANS_NONE
Definition: sqlite3.c:52482
DbPage * pDbPage
Definition: sqlite3.c:52409
#define get4byte
Definition: sqlite3.c:52793
u8 inTransaction
Definition: sqlite3.c:52532
u8 bDoTruncate
Definition: sqlite3.c:52530
#define BTS_INITIALLY_EMPTY
Definition: sqlite3.c:52565

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BtreeCheckpoint ( Btree p,
int  eMode,
int *  pnLog,
int *  pnCkpt 
)

Definition at line 62098 of file sqlite3.c.

References BtShared::inTransaction, Btree::pBt, BtShared::pPager, sqlite3BtreeEnter(), sqlite3BtreeLeave(), and sqlite3PagerCheckpoint().

Referenced by sqlite3Checkpoint().

62098  {
62099  int rc = SQLITE_OK;
62100  if( p ){
62101  BtShared *pBt = p->pBt;
62102  sqlite3BtreeEnter(p);
62103  if( pBt->inTransaction!=TRANS_NONE ){
62104  rc = SQLITE_LOCKED;
62105  }else{
62106  rc = sqlite3PagerCheckpoint(pBt->pPager, eMode, pnLog, pnCkpt);
62107  }
62108  sqlite3BtreeLeave(p);
62109  }
62110  return rc;
62111 }
#define SQLITE_LOCKED
Definition: sqlite3.c:618
SQLITE_PRIVATE void sqlite3BtreeEnter(Btree *)
Definition: sqlite3.c:52850
SQLITE_PRIVATE void sqlite3BtreeLeave(Btree *)
Definition: sqlite3.c:52922
BtShared * pBt
Definition: sqlite3.c:52461
Pager * pPager
Definition: sqlite3.c:52522
#define SQLITE_OK
Definition: sqlite3.c:611
#define TRANS_NONE
Definition: sqlite3.c:52482
SQLITE_PRIVATE int sqlite3PagerCheckpoint(Pager *pPager, int, int *, int *)
Definition: sqlite3.c:48743
u8 inTransaction
Definition: sqlite3.c:52532

Here is the call graph for this function:

SQLITE_PRIVATE void sqlite3BtreeClearCursor ( BtCursor pCur)

Definition at line 53782 of file sqlite3.c.

References BtCursor::eState, BtCursor::pKey, and sqlite3_free().

Referenced by sqlite3BtreeCloseCursor(), sqlite3BtreeTripAllCursors(), and sqlite3VdbeExec().

53782  {
53783  assert( cursorHoldsMutex(pCur) );
53784  sqlite3_free(pCur->pKey);
53785  pCur->pKey = 0;
53786  pCur->eState = CURSOR_INVALID;
53787 }
#define CURSOR_INVALID
Definition: sqlite3.c:52675
void * pKey
Definition: sqlite3.c:52623
u8 eState
Definition: sqlite3.c:52629
SQLITE_API void SQLITE_STDCALL sqlite3_free(void *)
Definition: sqlite3.c:21010

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BtreeClearTable ( Btree p,
int  iTable,
int *  pnChange 
)

Definition at line 61123 of file sqlite3.c.

References Btree::pBt, sqlite3BtreeEnter(), and sqlite3BtreeLeave().

Referenced by sqlite3BtreeClearTableOfCursor(), and sqlite3VdbeExec().

61123  {
61124  int rc;
61125  BtShared *pBt = p->pBt;
61126  sqlite3BtreeEnter(p);
61127  assert( p->inTrans==TRANS_WRITE );
61128 
61129  rc = saveAllCursors(pBt, (Pgno)iTable, 0);
61130 
61131  if( SQLITE_OK==rc ){
61132  /* Invalidate all incrblob cursors open on table iTable (assuming iTable
61133  ** is the root of a table b-tree - if it is not, the following call is
61134  ** a no-op). */
61135  invalidateIncrblobCursors(p, 0, 1);
61136  rc = clearDatabasePage(pBt, (Pgno)iTable, 0, pnChange);
61137  }
61138  sqlite3BtreeLeave(p);
61139  return rc;
61140 }
SQLITE_PRIVATE void sqlite3BtreeEnter(Btree *)
Definition: sqlite3.c:52850
#define TRANS_WRITE
Definition: sqlite3.c:52484
SQLITE_PRIVATE void sqlite3BtreeLeave(Btree *)
Definition: sqlite3.c:52922
BtShared * pBt
Definition: sqlite3.c:52461
u8 inTrans
Definition: sqlite3.c:52462
#define SQLITE_OK
Definition: sqlite3.c:611
u32 Pgno
Definition: sqlite3.c:10121

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BtreeClearTableOfCursor ( BtCursor pCur)

Definition at line 61147 of file sqlite3.c.

References BtCursor::pBtree, BtCursor::pgnoRoot, and sqlite3BtreeClearTable().

Referenced by sqlite3VdbeExec().

61147  {
61148  return sqlite3BtreeClearTable(pCur->pBtree, pCur->pgnoRoot, 0);
61149 }
SQLITE_PRIVATE int sqlite3BtreeClearTable(Btree *, int, int *)
Definition: sqlite3.c:61123
Pgno pgnoRoot
Definition: sqlite3.c:52624
Btree * pBtree
Definition: sqlite3.c:52616

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BtreeClose ( Btree p)

Definition at line 55344 of file sqlite3.c.

References Btree::pBt, BtCursor::pBtree, BtShared::pCursor, Btree::pNext, BtCursor::pNext, BtShared::pPager, Btree::pPrev, BtShared::pSchema, Btree::sharable, sqlite3_free(), sqlite3BtreeCloseCursor(), sqlite3BtreeEnter(), sqlite3BtreeLeave(), sqlite3BtreeRollback(), sqlite3DbFree(), sqlite3PagerClose(), and BtShared::xFreeSchema.

Referenced by sqlite3LeaveMutexAndCloseZombie(), sqlite3RunVacuum(), and sqlite3VdbeFreeCursor().

55344  {
55345  BtShared *pBt = p->pBt;
55346  BtCursor *pCur;
55347 
55348  /* Close all cursors opened via this handle. */
55349  assert( sqlite3_mutex_held(p->db->mutex) );
55350  sqlite3BtreeEnter(p);
55351  pCur = pBt->pCursor;
55352  while( pCur ){
55353  BtCursor *pTmp = pCur;
55354  pCur = pCur->pNext;
55355  if( pTmp->pBtree==p ){
55357  }
55358  }
55359 
55360  /* Rollback any active transaction and free the handle structure.
55361  ** The call to sqlite3BtreeRollback() drops any table-locks held by
55362  ** this handle.
55363  */
55365  sqlite3BtreeLeave(p);
55366 
55367  /* If there are still other outstanding references to the shared-btree
55368  ** structure, return now. The remainder of this procedure cleans
55369  ** up the shared-btree.
55370  */
55371  assert( p->wantToLock==0 && p->locked==0 );
55372  if( !p->sharable || removeFromSharingList(pBt) ){
55373  /* The pBt is no longer on the sharing list, so we can access
55374  ** it without having to hold the mutex.
55375  **
55376  ** Clean out and delete the BtShared object.
55377  */
55378  assert( !pBt->pCursor );
55379  sqlite3PagerClose(pBt->pPager);
55380  if( pBt->xFreeSchema && pBt->pSchema ){
55381  pBt->xFreeSchema(pBt->pSchema);
55382  }
55383  sqlite3DbFree(0, pBt->pSchema);
55384  freeTempSpace(pBt);
55385  sqlite3_free(pBt);
55386  }
55387 
55388 #ifndef SQLITE_OMIT_SHARED_CACHE
55389  assert( p->wantToLock==0 );
55390  assert( p->locked==0 );
55391  if( p->pPrev ) p->pPrev->pNext = p->pNext;
55392  if( p->pNext ) p->pNext->pPrev = p->pPrev;
55393 #endif
55394 
55395  sqlite3_free(p);
55396  return SQLITE_OK;
55397 }
BtCursor * pCursor
Definition: sqlite3.c:52524
u8 sharable
Definition: sqlite3.c:52463
sqlite3_mutex * mutex
Definition: sqlite3.c:10995
SQLITE_PRIVATE void sqlite3BtreeEnter(Btree *)
Definition: sqlite3.c:52850
Btree * pPrev
Definition: sqlite3.c:52469
Btree * pNext
Definition: sqlite3.c:52468
SQLITE_API int SQLITE_STDCALL sqlite3_mutex_held(sqlite3_mutex *)
SQLITE_PRIVATE void sqlite3BtreeLeave(Btree *)
Definition: sqlite3.c:52922
void(* xFreeSchema)(void *)
Definition: sqlite3.c:52547
sqlite3 * db
Definition: sqlite3.c:52460
BtShared * pBt
Definition: sqlite3.c:52461
SQLITE_PRIVATE int sqlite3BtreeCloseCursor(BtCursor *)
Definition: sqlite3.c:57005
void * pSchema
Definition: sqlite3.c:52546
u8 locked
Definition: sqlite3.c:52464
Pager * pPager
Definition: sqlite3.c:52522
#define SQLITE_OK
Definition: sqlite3.c:611
Btree * pBtree
Definition: sqlite3.c:52616
SQLITE_PRIVATE void sqlite3DbFree(sqlite3 *, void *)
Definition: sqlite3.c:21037
SQLITE_PRIVATE int sqlite3BtreeRollback(Btree *, int, int)
Definition: sqlite3.c:56753
BtCursor * pNext
Definition: sqlite3.c:52618
int wantToLock
Definition: sqlite3.c:52465
SQLITE_API void SQLITE_STDCALL sqlite3_free(void *)
Definition: sqlite3.c:21010
SQLITE_PRIVATE int sqlite3PagerClose(Pager *pPager)
Definition: sqlite3.c:45632

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BtreeCloseCursor ( BtCursor pCur)

Definition at line 57005 of file sqlite3.c.

References BtCursor::aOverflow, BtCursor::apPage, BtCursor::iPage, BtCursor::pBt, BtCursor::pBtree, BtShared::pCursor, BtCursor::pNext, BtCursor::pPrev, sqlite3_free(), sqlite3BtreeClearCursor(), sqlite3BtreeEnter(), and sqlite3BtreeLeave().

Referenced by sqlite3BtreeClose(), and sqlite3VdbeFreeCursor().

57005  {
57006  Btree *pBtree = pCur->pBtree;
57007  if( pBtree ){
57008  int i;
57009  BtShared *pBt = pCur->pBt;
57010  sqlite3BtreeEnter(pBtree);
57012  if( pCur->pPrev ){
57013  pCur->pPrev->pNext = pCur->pNext;
57014  }else{
57015  pBt->pCursor = pCur->pNext;
57016  }
57017  if( pCur->pNext ){
57018  pCur->pNext->pPrev = pCur->pPrev;
57019  }
57020  for(i=0; i<=pCur->iPage; i++){
57021  releasePage(pCur->apPage[i]);
57022  }
57023  unlockBtreeIfUnused(pBt);
57024  sqlite3_free(pCur->aOverflow);
57025  /* sqlite3_free(pCur); */
57026  sqlite3BtreeLeave(pBtree);
57027  }
57028  return SQLITE_OK;
57029 }
BtCursor * pCursor
Definition: sqlite3.c:52524
BtShared * pBt
Definition: sqlite3.c:52617
MemPage * apPage[BTCURSOR_MAX_DEPTH]
Definition: sqlite3.c:52633
i16 iPage
Definition: sqlite3.c:52631
SQLITE_PRIVATE void sqlite3BtreeEnter(Btree *)
Definition: sqlite3.c:52850
BtCursor * pPrev
Definition: sqlite3.c:52618
SQLITE_PRIVATE void sqlite3BtreeLeave(Btree *)
Definition: sqlite3.c:52922
SQLITE_PRIVATE void sqlite3BtreeClearCursor(BtCursor *)
Definition: sqlite3.c:53782
#define SQLITE_OK
Definition: sqlite3.c:611
Btree * pBtree
Definition: sqlite3.c:52616
BtCursor * pNext
Definition: sqlite3.c:52618
SQLITE_API void SQLITE_STDCALL sqlite3_free(void *)
Definition: sqlite3.c:21010
Pgno * aOverflow
Definition: sqlite3.c:52620

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BtreeCommit ( Btree p)

Definition at line 56673 of file sqlite3.c.

References sqlite3BtreeCommitPhaseOne(), sqlite3BtreeCommitPhaseTwo(), sqlite3BtreeEnter(), and sqlite3BtreeLeave().

Referenced by sqlite3RunVacuum().

56673  {
56674  int rc;
56675  sqlite3BtreeEnter(p);
56676  rc = sqlite3BtreeCommitPhaseOne(p, 0);
56677  if( rc==SQLITE_OK ){
56678  rc = sqlite3BtreeCommitPhaseTwo(p, 0);
56679  }
56680  sqlite3BtreeLeave(p);
56681  return rc;
56682 }
SQLITE_PRIVATE void sqlite3BtreeEnter(Btree *)
Definition: sqlite3.c:52850
SQLITE_PRIVATE void sqlite3BtreeLeave(Btree *)
Definition: sqlite3.c:52922
SQLITE_PRIVATE int sqlite3BtreeCommitPhaseTwo(Btree *, int)
Definition: sqlite3.c:56641
#define SQLITE_OK
Definition: sqlite3.c:611
SQLITE_PRIVATE int sqlite3BtreeCommitPhaseOne(Btree *, const char *zMaster)
Definition: sqlite3.c:56552

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BtreeCommitPhaseOne ( Btree p,
const char *  zMaster 
)

Definition at line 56552 of file sqlite3.c.

References BtShared::autoVacuum, BtShared::bDoTruncate, Btree::inTrans, BtShared::nPage, Btree::pBt, BtShared::pPager, sqlite3BtreeEnter(), sqlite3BtreeLeave(), sqlite3PagerCommitPhaseOne(), and sqlite3PagerTruncateImage().

Referenced by sqlite3_backup_step(), and sqlite3BtreeCommit().

56552  {
56553  int rc = SQLITE_OK;
56554  if( p->inTrans==TRANS_WRITE ){
56555  BtShared *pBt = p->pBt;
56556  sqlite3BtreeEnter(p);
56557 #ifndef SQLITE_OMIT_AUTOVACUUM
56558  if( pBt->autoVacuum ){
56559  rc = autoVacuumCommit(pBt);
56560  if( rc!=SQLITE_OK ){
56561  sqlite3BtreeLeave(p);
56562  return rc;
56563  }
56564  }
56565  if( pBt->bDoTruncate ){
56567  }
56568 #endif
56569  rc = sqlite3PagerCommitPhaseOne(pBt->pPager, zMaster, 0);
56570  sqlite3BtreeLeave(p);
56571  }
56572  return rc;
56573 }
SQLITE_PRIVATE void sqlite3BtreeEnter(Btree *)
Definition: sqlite3.c:52850
#define TRANS_WRITE
Definition: sqlite3.c:52484
SQLITE_PRIVATE int sqlite3PagerCommitPhaseOne(Pager *, const char *zMaster, int)
Definition: sqlite3.c:47770
u32 nPage
Definition: sqlite3.c:52545
SQLITE_PRIVATE void sqlite3PagerTruncateImage(Pager *, Pgno)
Definition: sqlite3.c:45501
SQLITE_PRIVATE void sqlite3BtreeLeave(Btree *)
Definition: sqlite3.c:52922
BtShared * pBt
Definition: sqlite3.c:52461
u8 inTrans
Definition: sqlite3.c:52462
Pager * pPager
Definition: sqlite3.c:52522
#define SQLITE_OK
Definition: sqlite3.c:611
u8 autoVacuum
Definition: sqlite3.c:52528
u8 bDoTruncate
Definition: sqlite3.c:52530

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BtreeCommitPhaseTwo ( Btree p,
int  bCleanup 
)

Definition at line 56641 of file sqlite3.c.

References Btree::iDataVersion, Btree::inTrans, BtShared::inTransaction, Btree::pBt, BtShared::pPager, sqlite3BtreeEnter(), sqlite3BtreeLeave(), and sqlite3PagerCommitPhaseTwo().

Referenced by sqlite3_backup_step(), and sqlite3BtreeCommit().

56641  {
56642 
56643  if( p->inTrans==TRANS_NONE ) return SQLITE_OK;
56644  sqlite3BtreeEnter(p);
56645  btreeIntegrity(p);
56646 
56647  /* If the handle has a write-transaction open, commit the shared-btrees
56648  ** transaction and set the shared state to TRANS_READ.
56649  */
56650  if( p->inTrans==TRANS_WRITE ){
56651  int rc;
56652  BtShared *pBt = p->pBt;
56653  assert( pBt->inTransaction==TRANS_WRITE );
56654  assert( pBt->nTransaction>0 );
56656  if( rc!=SQLITE_OK && bCleanup==0 ){
56657  sqlite3BtreeLeave(p);
56658  return rc;
56659  }
56660  p->iDataVersion--; /* Compensate for pPager->iDataVersion++; */
56661  pBt->inTransaction = TRANS_READ;
56662  btreeClearHasContent(pBt);
56663  }
56664 
56665  btreeEndTransaction(p);
56666  sqlite3BtreeLeave(p);
56667  return SQLITE_OK;
56668 }
u32 iDataVersion
Definition: sqlite3.c:52467
SQLITE_PRIVATE void sqlite3BtreeEnter(Btree *)
Definition: sqlite3.c:52850
#define TRANS_WRITE
Definition: sqlite3.c:52484
int nTransaction
Definition: sqlite3.c:52544
#define btreeIntegrity(p)
Definition: sqlite3.c:52745
SQLITE_PRIVATE void sqlite3BtreeLeave(Btree *)
Definition: sqlite3.c:52922
#define TRANS_READ
Definition: sqlite3.c:52483
BtShared * pBt
Definition: sqlite3.c:52461
u8 inTrans
Definition: sqlite3.c:52462
SQLITE_PRIVATE int sqlite3PagerCommitPhaseTwo(Pager *)
Definition: sqlite3.c:47943
Pager * pPager
Definition: sqlite3.c:52522
#define SQLITE_OK
Definition: sqlite3.c:611
#define TRANS_NONE
Definition: sqlite3.c:52482
u8 inTransaction
Definition: sqlite3.c:52532

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BtreeCopyFile ( Btree pTo,
Btree pFrom 
)

Definition at line 63068 of file sqlite3.c.

References BtShared::btsFlags, Btree::db, sqlite3_backup::iNext, Btree::pBt, sqlite3_backup::pDest, sqlite3_file::pMethods, sqlite3_backup::pSrc, sqlite3_backup::pSrcDb, sqlite3_backup_finish(), sqlite3_backup_step(), sqlite3BtreeEnter(), sqlite3BtreeGetPageSize(), sqlite3BtreeLastPage(), sqlite3BtreeLeave(), sqlite3BtreePager(), sqlite3OsFileControl(), sqlite3PagerClearCache(), and sqlite3PagerFile().

Referenced by sqlite3RunVacuum().

63068  {
63069  int rc;
63070  sqlite3_file *pFd; /* File descriptor for database pTo */
63071  sqlite3_backup b;
63072  sqlite3BtreeEnter(pTo);
63073  sqlite3BtreeEnter(pFrom);
63074 
63075  assert( sqlite3BtreeIsInTrans(pTo) );
63076  pFd = sqlite3PagerFile(sqlite3BtreePager(pTo));
63077  if( pFd->pMethods ){
63078  i64 nByte = sqlite3BtreeGetPageSize(pFrom)*(i64)sqlite3BtreeLastPage(pFrom);
63079  rc = sqlite3OsFileControl(pFd, SQLITE_FCNTL_OVERWRITE, &nByte);
63080  if( rc==SQLITE_NOTFOUND ) rc = SQLITE_OK;
63081  if( rc ) goto copy_finished;
63082  }
63083 
63084  /* Set up an sqlite3_backup object. sqlite3_backup.pDestDb must be set
63085  ** to 0. This is used by the implementations of sqlite3_backup_step()
63086  ** and sqlite3_backup_finish() to detect that they are being called
63087  ** from this function, not directly by the user.
63088  */
63089  memset(&b, 0, sizeof(b));
63090  b.pSrcDb = pFrom->db;
63091  b.pSrc = pFrom;
63092  b.pDest = pTo;
63093  b.iNext = 1;
63094 
63095  /* 0x7FFFFFFF is the hard limit for the number of pages in a database
63096  ** file. By passing this as the number of pages to copy to
63097  ** sqlite3_backup_step(), we can guarantee that the copy finishes
63098  ** within a single call (unless an error occurs). The assert() statement
63099  ** checks this assumption - (p->rc) should be set to either SQLITE_DONE
63100  ** or an error code.
63101  */
63102  sqlite3_backup_step(&b, 0x7FFFFFFF);
63103  assert( b.rc!=SQLITE_OK );
63104  rc = sqlite3_backup_finish(&b);
63105  if( rc==SQLITE_OK ){
63106  pTo->pBt->btsFlags &= ~BTS_PAGESIZE_FIXED;
63107  }else{
63109  }
63110 
63111  assert( sqlite3BtreeIsInTrans(pTo)==0 );
63112 copy_finished:
63113  sqlite3BtreeLeave(pFrom);
63114  sqlite3BtreeLeave(pTo);
63115  return rc;
63116 }
SQLITE_PRIVATE struct Pager * sqlite3BtreePager(Btree *)
Definition: sqlite3.c:61436
Btree * pSrc
Definition: sqlite3.c:62359
#define BTS_PAGESIZE_FIXED
Definition: sqlite3.c:52563
SQLITE_PRIVATE void sqlite3BtreeEnter(Btree *)
Definition: sqlite3.c:52850
SQLITE_API int SQLITE_STDCALL sqlite3_backup_finish(sqlite3_backup *p)
Definition: sqlite3.c:62930
SQLITE_PRIVATE int sqlite3BtreeIsInTrans(Btree *)
Definition: sqlite3.c:62084
u16 btsFlags
Definition: sqlite3.c:52537
SQLITE_PRIVATE u32 sqlite3BtreeLastPage(Btree *)
Definition: sqlite3.c:54865
SQLITE_PRIVATE void sqlite3PagerClearCache(Pager *)
Definition: sqlite3.c:48730
SQLITE_PRIVATE void sqlite3BtreeLeave(Btree *)
Definition: sqlite3.c:52922
SQLITE_API int SQLITE_STDCALL sqlite3_backup_step(sqlite3_backup *p, int nPage)
Definition: sqlite3.c:62685
sqlite3 * db
Definition: sqlite3.c:52460
SQLITE_PRIVATE int sqlite3BtreeGetPageSize(Btree *)
Definition: sqlite3.c:55528
const struct sqlite3_io_methods * pMethods
Definition: sqlite3.c:844
SQLITE_PRIVATE int sqlite3OsFileControl(sqlite3_file *, int, void *)
Definition: sqlite3.c:16572
#define SQLITE_NOTFOUND
Definition: sqlite3.c:624
BtShared * pBt
Definition: sqlite3.c:52461
SQLITE_PRIVATE sqlite3_file * sqlite3PagerFile(Pager *)
Definition: sqlite3.c:48302
sqlite3 * pSrcDb
Definition: sqlite3.c:62358
Btree * pDest
Definition: sqlite3.c:62353
sqlite_int64 i64
Definition: sqlite3.c:8954
#define SQLITE_OK
Definition: sqlite3.c:611
#define SQLITE_FCNTL_OVERWRITE
Definition: sqlite3.c:1185

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BtreeCount ( BtCursor pCur,
i64 pnEntry 
)

Definition at line 61366 of file sqlite3.c.

References MemPage::aData, BtCursor::aiIdx, BtCursor::apPage, MemPage::hdrOffset, MemPage::intKey, BtCursor::iPage, MemPage::leaf, MemPage::nCell, BtCursor::pgnoRoot, and sqlite3Get4byte().

Referenced by sqlite3VdbeExec().

61366  {
61367  i64 nEntry = 0; /* Value to return in *pnEntry */
61368  int rc; /* Return code */
61369 
61370  if( pCur->pgnoRoot==0 ){
61371  *pnEntry = 0;
61372  return SQLITE_OK;
61373  }
61374  rc = moveToRoot(pCur);
61375 
61376  /* Unless an error occurs, the following loop runs one iteration for each
61377  ** page in the B-Tree structure (not including overflow pages).
61378  */
61379  while( rc==SQLITE_OK ){
61380  int iIdx; /* Index of child node in parent */
61381  MemPage *pPage; /* Current page of the b-tree */
61382 
61383  /* If this is a leaf page or the tree is not an int-key tree, then
61384  ** this page contains countable entries. Increment the entry counter
61385  ** accordingly.
61386  */
61387  pPage = pCur->apPage[pCur->iPage];
61388  if( pPage->leaf || !pPage->intKey ){
61389  nEntry += pPage->nCell;
61390  }
61391 
61392  /* pPage is a leaf node. This loop navigates the cursor so that it
61393  ** points to the first interior cell that it points to the parent of
61394  ** the next page in the tree that has not yet been visited. The
61395  ** pCur->aiIdx[pCur->iPage] value is set to the index of the parent cell
61396  ** of the page, or to the number of cells in the page if the next page
61397  ** to visit is the right-child of its parent.
61398  **
61399  ** If all pages in the tree have been visited, return SQLITE_OK to the
61400  ** caller.
61401  */
61402  if( pPage->leaf ){
61403  do {
61404  if( pCur->iPage==0 ){
61405  /* All pages of the b-tree have been visited. Return successfully. */
61406  *pnEntry = nEntry;
61407  return moveToRoot(pCur);
61408  }
61409  moveToParent(pCur);
61410  }while ( pCur->aiIdx[pCur->iPage]>=pCur->apPage[pCur->iPage]->nCell );
61411 
61412  pCur->aiIdx[pCur->iPage]++;
61413  pPage = pCur->apPage[pCur->iPage];
61414  }
61415 
61416  /* Descend to the child node of the cell that the cursor currently
61417  ** points at. This is the right-child if (iIdx==pPage->nCell).
61418  */
61419  iIdx = pCur->aiIdx[pCur->iPage];
61420  if( iIdx==pPage->nCell ){
61421  rc = moveToChild(pCur, get4byte(&pPage->aData[pPage->hdrOffset+8]));
61422  }else{
61423  rc = moveToChild(pCur, get4byte(findCell(pPage, iIdx)));
61424  }
61425  }
61426 
61427  /* An error has occurred. Return an error code. */
61428  return rc;
61429 }
MemPage * apPage[BTCURSOR_MAX_DEPTH]
Definition: sqlite3.c:52633
i16 iPage
Definition: sqlite3.c:52631
u8 leaf
Definition: sqlite3.c:52391
u8 hdrOffset
Definition: sqlite3.c:52392
u16 aiIdx[BTCURSOR_MAX_DEPTH]
Definition: sqlite3.c:52632
#define findCell(P, I)
Definition: sqlite3.c:54039
Pgno pgnoRoot
Definition: sqlite3.c:52624
u8 * aData
Definition: sqlite3.c:52406
sqlite_int64 i64
Definition: sqlite3.c:8954
#define SQLITE_OK
Definition: sqlite3.c:611
u8 intKey
Definition: sqlite3.c:52388
#define get4byte
Definition: sqlite3.c:52793
u16 nCell
Definition: sqlite3.c:52400

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BtreeCreateTable ( Btree p,
int *  piTable,
int  flags 
)

Definition at line 61045 of file sqlite3.c.

References sqlite3BtreeEnter(), and sqlite3BtreeLeave().

Referenced by sqlite3VdbeExec().

61045  {
61046  int rc;
61047  sqlite3BtreeEnter(p);
61048  rc = btreeCreateTable(p, piTable, flags);
61049  sqlite3BtreeLeave(p);
61050  return rc;
61051 }
SQLITE_PRIVATE void sqlite3BtreeEnter(Btree *)
Definition: sqlite3.c:52850
SQLITE_PRIVATE void sqlite3BtreeLeave(Btree *)
Definition: sqlite3.c:52922

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BtreeCursor ( Btree p,
int  iTable,
int  wrFlag,
struct KeyInfo pKeyInfo,
BtCursor pCursor 
)

Definition at line 56963 of file sqlite3.c.

References sqlite3BtreeEnter(), and sqlite3BtreeLeave().

Referenced by sqlite3VdbeExec().

56969  {
56970  int rc;
56971  sqlite3BtreeEnter(p);
56972  rc = btreeCursor(p, iTable, wrFlag, pKeyInfo, pCur);
56973  sqlite3BtreeLeave(p);
56974  return rc;
56975 }
SQLITE_PRIVATE void sqlite3BtreeEnter(Btree *)
Definition: sqlite3.c:52850
SQLITE_PRIVATE void sqlite3BtreeLeave(Btree *)
Definition: sqlite3.c:52922

Here is the call graph for this function:

SQLITE_PRIVATE int sqlite3BtreeCursorHasMoved ( BtCursor pCur)

Definition at line 53873 of file sqlite3.c.

References BtCursor::eState.

Referenced by sqlite3VdbeCursorMoveto(), and sqlite3VdbeCursorRestore().

53873  {
53874  return pCur->eState!=CURSOR_VALID;
53875 }
#define CURSOR_VALID
Definition: sqlite3.c:52676
u8 eState
Definition: sqlite3.c:52629
SQLITE_PRIVATE void sqlite3BtreeCursorHints ( BtCursor pCsr,
unsigned int  mask 
)

Definition at line 62304 of file sqlite3.c.

References BtCursor::hints.

Referenced by sqlite3VdbeExec().

62304  {
62305  assert( mask==BTREE_BULKLOAD || mask==BTREE_SEEK_EQ || mask==0 );
62306  pCsr->hints = mask;
62307 }
u8 hints
Definition: sqlite3.c:52630
#define BTREE_SEEK_EQ
Definition: sqlite3.c:9482
#define BTREE_BULKLOAD
Definition: sqlite3.c:9481
SQLITE_PRIVATE int sqlite3BtreeCursorRestore ( BtCursor pCur,
int *  pDifferentRow 
)

Definition at line 53890 of file sqlite3.c.

References BtCursor::eState.

53890  {
53891  int rc;
53892 
53893  assert( pCur!=0 );
53894  assert( pCur->eState!=CURSOR_VALID );
53895  rc = restoreCursorPosition(pCur);
53896  if( rc ){
53897  *pDifferentRow = 1;
53898  return rc;
53899  }
53900  if( pCur->eState!=CURSOR_VALID ){
53901  *pDifferentRow = 1;
53902  }else{
53903  assert( pCur->skipNext==0 );
53904  *pDifferentRow = 0;
53905  }
53906  return SQLITE_OK;
53907 }
int skipNext
Definition: sqlite3.c:52626
#define CURSOR_VALID
Definition: sqlite3.c:52676
#define restoreCursorPosition(p)
Definition: sqlite3.c:53856
#define SQLITE_OK
Definition: sqlite3.c:611
u8 eState
Definition: sqlite3.c:52629
SQLITE_PRIVATE int sqlite3BtreeCursorSize ( void  )

Definition at line 56985 of file sqlite3.c.

56985  {
56986  return ROUND8(sizeof(BtCursor));
56987 }
#define ROUND8(x)
Definition: sqlite3.c:9070
SQLITE_PRIVATE void sqlite3BtreeCursorZero ( BtCursor p)

Definition at line 56997 of file sqlite3.c.

References BtCursor::iPage.

56997  {
56998  memset(p, 0, offsetof(BtCursor, iPage));
56999 }
#define offsetof(STRUCTURE, FIELD)
Definition: sqlite3.c:8885
SQLITE_PRIVATE int sqlite3BtreeData ( BtCursor pCur,
u32  offset,
u32  amt,
void *  pBuf 
)

Definition at line 57493 of file sqlite3.c.

References BtCursor::eState.

Referenced by sqlite3_blob_read(), sqlite3VdbeExec(), and sqlite3VdbeMemFromBtree().

57493  {
57494  int rc;
57495 
57496 #ifndef SQLITE_OMIT_INCRBLOB
57497  if ( pCur->eState==CURSOR_INVALID ){
57498  return SQLITE_ABORT;
57499  }
57500 #endif
57501 
57502  assert( cursorHoldsMutex(pCur) );
57503  rc = restoreCursorPosition(pCur);
57504  if( rc==SQLITE_OK ){
57505  assert( pCur->eState==CURSOR_VALID );
57506  assert( pCur->iPage>=0 && pCur->apPage[pCur->iPage] );
57507  assert( pCur->aiIdx[pCur->iPage]<pCur->apPage[pCur->iPage]->nCell );
57508  rc = accessPayload(pCur, offset, amt, pBuf, 0);
57509  }
57510  return rc;
57511 }
#define SQLITE_ABORT
Definition: sqlite3.c:616
MemPage * apPage[BTCURSOR_MAX_DEPTH]
Definition: sqlite3.c:52633
i16 iPage
Definition: sqlite3.c:52631
#define CURSOR_INVALID
Definition: sqlite3.c:52675
u16 aiIdx[BTCURSOR_MAX_DEPTH]
Definition: sqlite3.c:52632
#define CURSOR_VALID
Definition: sqlite3.c:52676
#define restoreCursorPosition(p)
Definition: